From 6b28ef03499e699974fdd9c58628ad5cd6b5c859 Mon Sep 17 00:00:00 2001 From: Pranav Veldurthi Date: Tue, 19 Nov 2024 23:13:22 -0500 Subject: [PATCH 01/44] Stable stable diffusion mlx --- exo/api/chatgpt_api.py | 79 ++- exo/download/hf/hf_helpers.py | 4 + exo/inference/inference_engine.py | 6 +- .../mlx/models/StableDiffusionPipeline.py | 288 ++++++++ exo/inference/mlx/models/sd_models/clip.py | 192 ++++++ .../mlx/models/sd_models/tokenizer.py | 131 ++++ exo/inference/mlx/models/sd_models/unet.py | 629 ++++++++++++++++++ exo/inference/mlx/models/sd_models/vae.py | 390 +++++++++++ exo/inference/mlx/sharded_inference_engine.py | 7 +- exo/inference/mlx/sharded_utils.py | 73 +- exo/inference/mlx/stateful_model.py | 23 +- exo/main.py | 2 +- exo/models.py | 3 + exo/networking/grpc/grpc_peer_handle.py | 42 +- exo/networking/grpc/grpc_server.py | 29 +- exo/networking/grpc/node_service.proto | 14 +- exo/networking/grpc/node_service_pb2.py | 94 +-- exo/networking/grpc/node_service_pb2_grpc.py | 88 +-- exo/orchestration/standard_node.py | 82 ++- exo/tinychat/index.html | 10 +- exo/tinychat/index.js | 134 ++-- 21 files changed, 2124 insertions(+), 196 deletions(-) create mode 100644 exo/inference/mlx/models/StableDiffusionPipeline.py create mode 100644 exo/inference/mlx/models/sd_models/clip.py create mode 100644 exo/inference/mlx/models/sd_models/tokenizer.py create mode 100644 exo/inference/mlx/models/sd_models/unet.py create mode 100644 exo/inference/mlx/models/sd_models/vae.py diff --git a/exo/api/chatgpt_api.py b/exo/api/chatgpt_api.py index ab074511..d981568b 100644 --- a/exo/api/chatgpt_api.py +++ b/exo/api/chatgpt_api.py @@ -15,7 +15,8 @@ from exo.inference.tokenizers import resolve_tokenizer from exo.orchestration import Node from exo.models import build_base_shard, model_cards, get_repo, pretty_name, get_supported_models from typing import Callable, Optional - +from PIL import Image +import numpy as np class Message: def __init__(self, role: str, content: Union[str, List[Dict[str, Union[str, Dict[str, str]]]]]): @@ -169,13 +170,16 @@ class ChatGPTAPI: cors.add(self.app.router.add_post("/v1/chat/token/encode", self.handle_post_chat_token_encode), {"*": cors_options}) cors.add(self.app.router.add_post("/chat/completions", self.handle_post_chat_completions), {"*": cors_options}) cors.add(self.app.router.add_post("/v1/chat/completions", self.handle_post_chat_completions), {"*": cors_options}) + cors.add(self.app.router.add_post("/v1/image/generations", self.handle_post_image_generations), {"*": cors_options}) cors.add(self.app.router.add_get("/v1/download/progress", self.handle_get_download_progress), {"*": cors_options}) cors.add(self.app.router.add_get("/modelpool", self.handle_model_support), {"*": cors_options}) cors.add(self.app.router.add_get("/healthcheck", self.handle_healthcheck), {"*": cors_options}) + self.static_dir = Path(__file__).parent.parent/"tinychat" self.app.router.add_get("/", self.handle_root) self.app.router.add_static("/", self.static_dir, name="static") + self.app.router.add_static('/images/', self.static_dir / 'images', name='static_images') self.app.middlewares.append(self.timeout_middleware) self.app.middlewares.append(self.log_request) @@ -359,6 +363,79 @@ class ChatGPTAPI: deregistered_callback = self.node.on_token.deregister(callback_id) if DEBUG >= 2: print(f"Deregister {callback_id=} {deregistered_callback=}") + + async def handle_post_image_generations(self, request): + data = await request.json() + + if DEBUG >= 2: print(f"Handling chat completions request from {request.remote}: {data}") + stream = data.get("stream", False) + model = data.get("model", "") + prompt = data.get("prompt", "") + print(f"model: {model}, prompt: {prompt}, stream: {stream}") + shard = build_base_shard(model, self.inference_engine_classname) + print(f"shard: {shard}") + if not shard: + return web.json_response({"error": f"Unsupported model: {model} with inference engine {self.inference_engine_classname}"}, status=400) + + request_id = str(uuid.uuid4()) + callback_id = f"chatgpt-api-wait-response-{request_id}" + callback = self.node.on_token.register(callback_id) + try: + await asyncio.wait_for(asyncio.shield(asyncio.create_task(self.node.process_prompt(shard, prompt, request_id=request_id))), timeout=self.response_timeout) + + + response = web.StreamResponse(status=200, reason='OK', headers={'Content-Type': 'application/octet-stream',"Cache-Control": "no-cache",}) + await response.prepare(request) + + def get_progress_bar(current_step, total_steps, bar_length=50): + # Calculate the percentage of completion + percent = float(current_step) / total_steps + # Calculate the number of hashes to display + arrow = '-' * int(round(percent * bar_length) - 1) + '>' + spaces = ' ' * (bar_length - len(arrow)) + + # Create the progress bar string + progress_bar = f'Progress: [{arrow}{spaces}] {int(percent * 100)}% ({current_step}/{total_steps})' + return progress_bar + + async def stream_image(_request_id: str, result, is_finished: bool): + if isinstance(result, list): + await response.write(json.dumps({'progress': get_progress_bar((result[0]), (result[1]))}).encode('utf-8') + b'\n') + + elif isinstance(result, np.ndarray): + im = Image.fromarray(np.array(result)) + # Save the image to a file + image_filename = f"{_request_id}.png" + image_path = self.static_dir / "images" / image_filename + im.save(image_path) + image_url = request.app.router['static_images'].url_for(filename=image_filename) + base_url = f"{request.scheme}://{request.host}" + # Construct the full URL correctly + full_image_url = base_url + str(image_url) + + await response.write(json.dumps({'images': [{'url': str(full_image_url), 'content_type': 'image/png'}]}).encode('utf-8') + b'\n') + + await response.write_eof() + + + stream_task = None + def on_result(_request_id: str, result, is_finished: bool): + nonlocal stream_task + stream_task = asyncio.create_task(stream_image(_request_id, result, is_finished)) + return _request_id == request_id and is_finished + + await callback.wait(on_result, timeout=self.response_timeout*10) + + if stream_task: + # Wait for the stream task to complete before returning + await stream_task + + return response + + except Exception as e: + if DEBUG >= 2: traceback.print_exc() + return web.json_response({"detail": f"Error processing prompt (see logs with DEBUG>=2): {str(e)}"}, status=500) + async def run(self, host: str = "0.0.0.0", port: int = 52415): runner = web.AppRunner(self.app) await runner.setup() diff --git a/exo/download/hf/hf_helpers.py b/exo/download/hf/hf_helpers.py index 4729e5f6..a2696f17 100644 --- a/exo/download/hf/hf_helpers.py +++ b/exo/download/hf/hf_helpers.py @@ -276,6 +276,10 @@ async def download_repo_files( await f.write(json.dumps(file_list)) if DEBUG >= 2: print(f"Cached file list at {cached_file_list_path}") + model_index_exists = any(file["path"] == "model_index.json" for file in file_list) + if model_index_exists: + allow_patterns = ["**/*.json", "**/*.txt", "**/*model.safetensors", "*.json"] + filtered_file_list = list(filter_repo_objects(file_list, allow_patterns=allow_patterns, ignore_patterns=ignore_patterns, key=lambda x: x["path"])) total_files = len(filtered_file_list) total_bytes = sum(file["size"] for file in filtered_file_list) diff --git a/exo/inference/inference_engine.py b/exo/inference/inference_engine.py index 0f093591..1e142b16 100644 --- a/exo/inference/inference_engine.py +++ b/exo/inference/inference_engine.py @@ -24,10 +24,10 @@ class InferenceEngine(ABC): async def infer_tensor(self, request_id: str, shard: Shard, input_data: np.ndarray) -> np.ndarray: pass - async def infer_prompt(self, request_id: str, shard: Shard, prompt: str) -> np.ndarray: + async def infer_prompt(self, request_id: str, shard: Shard, prompt: str, inference_state: Optional[dict] = None) -> np.ndarray: tokens = await self.encode(shard, prompt) - output_data = await self.infer_tensor(request_id, shard, tokens) - return output_data + output_data, inference_state = await self.infer_tensor(request_id, shard, tokens, inference_state) + return output_data, inference_state inference_engine_classes = { "mlx": "MLXDynamicShardInferenceEngine", diff --git a/exo/inference/mlx/models/StableDiffusionPipeline.py b/exo/inference/mlx/models/StableDiffusionPipeline.py new file mode 100644 index 00000000..443887a3 --- /dev/null +++ b/exo/inference/mlx/models/StableDiffusionPipeline.py @@ -0,0 +1,288 @@ +# Adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/__init__.py + +import time +from typing import Optional, Tuple +import inspect + +import mlx.core as mx +import mlx.nn as nn +from pathlib import Path + +from tqdm import tqdm + +from .sd_models.vae import ModelArgs as VAEArgs +from .sd_models.vae import Autoencoder +from .sd_models.tokenizer import load_tokenizer +from .sd_models.clip import CLIPTextModel +from .sd_models.clip import ModelArgs as CLIPArgs +from .sd_models.unet import UNetConfig, UNetModel + +from dataclasses import dataclass, field +from exo.inference.shard import Shard + +@dataclass +class DiffusionConfig: + beta_schedule: str = "scaled_linear" + beta_start: float = 0.00085 + beta_end: float = 0.012 + num_train_steps: int = 1000 + + @classmethod + def from_dict(cls, params): + return cls(**{k: v for k, v in params.items() if k in inspect.signature(cls).parameters}) + + +#Sampler +def _linspace(a, b, num): + x = mx.arange(0, num) / (num - 1) + return (b - a) * x + a + + +def _interp(y, x_new): + """Interpolate the function defined by (arange(0, len(y)), y) at positions x_new.""" + x_low = x_new.astype(mx.int32) + x_high = mx.minimum(x_low + 1, len(y) - 1) + + y_low = y[x_low] + y_high = y[x_high] + delta_x = x_new - x_low + y_new = y_low * (1 - delta_x) + delta_x * y_high + + return y_new + +class SimpleEulerSampler: + """A simple Euler integrator that can be used to sample from our diffusion models. + + The method ``step()`` performs one Euler step from x_t to x_t_prev. + """ + + def __init__(self, config: DiffusionConfig): + # Compute the noise schedule + if config.beta_schedule == "linear": + betas = _linspace( + config.beta_start, config.beta_end, config.num_train_steps + ) + elif config.beta_schedule == "scaled_linear": + betas = _linspace( + config.beta_start**0.5, config.beta_end**0.5, config.num_train_steps + ).square() + else: + raise NotImplementedError(f"{config.beta_schedule} is not implemented.") + + alphas = 1 - betas + alphas_cumprod = mx.cumprod(alphas) + + self._sigmas = mx.concatenate( + [mx.zeros(1), ((1 - alphas_cumprod) / alphas_cumprod).sqrt()] + ) + + @property + def max_time(self): + return len(self._sigmas) - 1 + + def sample_prior(self, shape, dtype=mx.float32, key=None): + noise = mx.random.normal(shape, key=key) + return ( + noise * self._sigmas[-1] * (self._sigmas[-1].square() + 1).rsqrt() + ).astype(dtype) + + def add_noise(self, x, t, key=None): + noise = mx.random.normal(x.shape, key=key) + s = self.sigmas(t) + return (x + noise * s) * (s.square() + 1).rsqrt() + + def sigmas(self, t): + return _interp(self._sigmas, t) + + def timesteps(self, num_steps: int, start_time=None, dtype=mx.float32): + start_time = start_time or (len(self._sigmas) - 1) + assert 0 < start_time <= (len(self._sigmas) - 1) + steps = _linspace(start_time, 0, num_steps + 1).astype(dtype) + return list(zip(steps, steps[1:])) + + def current_timestep(self, step, total_steps, start_time=None): + if step < total_steps: + steps = self.timesteps(total_steps, start_time) + return steps[step] + else: + return mx.array(0),mx.array(0) + + def step(self, eps_pred, x_t, t, t_prev): + sigma = self.sigmas(t).astype(eps_pred.dtype) + sigma_prev = self.sigmas(t_prev).astype(eps_pred.dtype) + + dt = sigma_prev - sigma + x_t_prev = (sigma.square() + 1).sqrt() * x_t + eps_pred * dt + + x_t_prev = x_t_prev * (sigma_prev.square() + 1).rsqrt() + + return x_t_prev + +@dataclass +class ShardConfig: + model_id:str + start_layer:int + end_layer:int + n_layers:int + +@dataclass +class StableDiffusionConfig: + model_type:str + vae:VAEArgs + text_encoder:CLIPArgs + scheduler:DiffusionConfig + unet:UNetConfig + shard:ShardConfig + + @classmethod + def from_dict(cls, params): + return cls(**{k: v for k, v in params.items() if k in inspect.signature(cls).parameters}) + +@dataclass +class ModelArgs(StableDiffusionConfig): + shard:Shard = field(default_factory=lambda: Shard("", 0, 0, 0)) + + def __post_init__(self): + if isinstance(self.shard, dict): + self.shard = Shard(**self.shard) + + if not isinstance(self.shard, Shard): + raise TypeError(f"Expected shard to be a Shard instance or a dict, got {type(self.shard)} instead") + + +class Model(nn.Module): + def __init__(self, config): + super().__init__() + self.model_type = config.model_type + self.config = config + self.model_path = config.vae['path'].split('/vae')[0] + self.shard = config.shard + self.shard_clip, self.shard_unet, self.shard_vae = model_shards(config.shard) + self.config_clip=CLIPArgs.from_dict(config.text_encoder['config']) + if self.shard_clip.start_layer != -1: + self.text_encoder = CLIPTextModel(self.config_clip, shard=self.shard_clip) + else: + self.text_encoder = nn.Identity() + self.tokenizer = load_tokenizer(Path(self.model_path), "vocab.json", "merges.txt") + self.diffusion_config = DiffusionConfig.from_dict(config.scheduler['config']) + self.sampler = SimpleEulerSampler(self.diffusion_config) + if self.shard_unet.start_layer!=-1: + self.config_unet = UNetConfig.from_dict(config.unet['config']) + self.unet = UNetModel(self.config_unet, self.shard_unet) + else: + self.unet = nn.Identity() + self.config_vae=VAEArgs.from_dict(config.vae['config']) + if self.shard_vae.start_layer != -1: + self.first_stage_model=Autoencoder(self.config_vae, self.shard_vae) + else: + self.first_stage_model = nn.Identity() + + def __call__(self,x, step= 0, cfg_weight: float = 7.5,total_steps=50,conditioning=None,mask=None,residual=None,x_t_prev=None,is_finished=False,is_step_finished=False): + if self.shard.is_first_layer(): + x = x.squeeze(0) + t, t_prev = self.sampler.current_timestep(step=step, total_steps=total_steps) + is_finished = False + is_step_finished = False + if t.item()==1000: + if self.shard_clip.start_layer == 0: + conditioning = x + if self.shard_clip.start_layer != -1: + + conditioning, mask= self.text_encoder(conditioning,mask) + seed = int(time.time()) + mx.random.seed(seed) + if self.shard_unet.is_first_layer(): + x = self.sampler.sample_prior((1, *(64, 64), self.config_vae.latent_channels_in), dtype=mx.float32) + x_t_prev=x + # Perform the denoising loop + if self.shard_unet.start_layer != -1: + with tqdm(total=total_steps,initial=step+1) as pbar: + if step 1 else x + else: + x_t_unet = x + t_unet = mx.broadcast_to(t, [len(x_t_unet)]) + x, residual= self.unet(x_t_unet, t_unet, encoder_x=conditioning, residuals=residual) + if self.shard_unet.is_last_layer(): + if cfg_weight > 1: + eps_text, eps_neg = x.split(2) + eps_pred = eps_neg + cfg_weight * (eps_text - eps_neg) + x = self.sampler.step(eps_pred, x_t_prev, t, t_prev) + x_t_prev=x + mx.eval(x) + + if self.shard_vae.is_last_layer(): + is_step_finished=True + if t_prev.item() ==0: + if self.shard_vae.start_layer != -1: + x=self.first_stage_model.decode(x) + if self.shard_vae.is_last_layer(): + x = mx.clip(x / 2 + 0.5, 0, 1) + x = mx.pad(x, [(0, 0), (8, 8), (8, 8), (0, 0)]) + B, H, W, C = x.shape + x = x.reshape(1, B // 1, H, W, C).transpose(0, 2, 1, 3, 4) + x = x.reshape(1 * H, B // 1 * W, C) + x = (x * 255).astype(mx.uint8) + is_finished=True + + return x, {'conditioning':conditioning, 'mask':mask,'residual':residual,'x_t_prev':x_t_prev,'is_finished':is_finished,'is_step_finished':is_step_finished, 'step':step, 'total_steps':total_steps} + + + def load(self): + if self.shard_vae.start_layer != -1: + vae_weights = mx.load(self.config_vae.weight_files[0]) + vae_weights = self.first_stage_model.sanitize(vae_weights) + self.first_stage_model.load_weights(list(vae_weights.items()), strict=True) + if self.shard_clip.start_layer != -1: + clip_weights = mx.load(self.config_clip.weight_files[0]) + clip_weights = self.text_encoder.sanitize(clip_weights) + self.text_encoder.load_weights(list(clip_weights.items()), strict=True) + if self.shard_unet.start_layer !=-1: + unet_weights = mx.load(self.config_unet.weight_files[0]) + unet_weights = self.unet.sanitize(unet_weights) + self.unet.load_weights(list(unet_weights.items()), strict=True) + + +def model_shards(shard:ShardConfig): + def create_shard(shard, model_ranges): + start_layer = shard.start_layer + end_layer = shard.end_layer + + shards = {} + + for model_name, (range_start, range_end) in model_ranges.items(): + if start_layer < range_end and end_layer >= range_start: + # Calculate the overlap with the model range + overlap_start = max(start_layer, range_start) + overlap_end = min(end_layer, range_end - 1) + + # Adjust the layers relative to the model's range + relative_start = overlap_start - range_start + relative_end = overlap_end - range_start + shards[model_name] = Shard(model_name, relative_start, relative_end, range_end - range_start) + else: + # If no overlap, create a zero-layer shard + shards[model_name] = Shard(model_name, -1, -1, range_end - range_start) + + return shards + + # Define the ranges for different models + model_ranges = { + 'clip': (0, 23), + 'unet':(23,32), + 'vae': (32, 37) # Example range for unet + } + + # Call the function and get the shards for all models + shards = create_shard(shard, model_ranges) + + # Access individual shards + shard_clip = shards['clip'] + shard_unet = shards['unet'] + shard_vae = shards['vae'] + + return shard_clip, shard_unet, shard_vae + + + diff --git a/exo/inference/mlx/models/sd_models/clip.py b/exo/inference/mlx/models/sd_models/clip.py new file mode 100644 index 00000000..78d95321 --- /dev/null +++ b/exo/inference/mlx/models/sd_models/clip.py @@ -0,0 +1,192 @@ +# Adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/clip.py + +from dataclasses import dataclass +from typing import List, Optional + +import mlx.core as mx +import mlx.nn as nn +from dataclasses import field, dataclass +from exo.inference.shard import Shard +from exo.inference.mlx.models.base import IdentityBlock + +_ACTIVATIONS = {"quick_gelu": nn.gelu_fast_approx, "gelu": nn.gelu} + + + +@dataclass +class CLIPTextModelConfig: + num_layers: int = 23 + model_dims: int = 1024 + num_heads: int = 16 + max_length: int = 77 + vocab_size: int = 49408 + projection_dim: Optional[int] = None + hidden_act: str = "quick_gelu" + + @classmethod + def from_dict(cls, config): + return ModelArgs( + num_layers=config["num_hidden_layers"], + model_dims=config["hidden_size"], + num_heads=config["num_attention_heads"], + max_length=config["max_position_embeddings"], + vocab_size=config["vocab_size"], + projection_dim=config["projection_dim"] if "WithProjection" in config['architectures'][0] else None, + hidden_act=config.get("hidden_act", "quick_gelu"), + weight_files=config.get("weight_files", []) + ) + +@dataclass +class ModelArgs(CLIPTextModelConfig): + shard: Shard = field(default_factory=lambda: Shard("", 0, 0, 0)) + weight_files: List[str] = field(default_factory=lambda: []) + def __post_init__(self): + if isinstance(self.shard, dict): + self.shard = Shard(**self.shard) + + if not isinstance(self.shard, Shard): + raise TypeError(f"Expected shard to be a Shard instance or a dict, got {type(self.shard)} instead") + + if not self.shard.is_first_layer(): + self.vision_config = None + + +@dataclass +class CLIPOutput: + pooled_output: Optional[mx.array] = None + last_hidden_state: Optional[mx.array] = None + hidden_states: Optional[List[mx.array]] = None + + +class CLIPEncoderLayer(nn.Module): + """The transformer encoder layer from CLIP.""" + + def __init__(self, model_dims: int, num_heads: int, activation: str): + super().__init__() + + self.layer_norm1 = nn.LayerNorm(model_dims) + self.layer_norm2 = nn.LayerNorm(model_dims) + + self.attention = nn.MultiHeadAttention(model_dims, num_heads) + self.attention.query_proj.bias = mx.zeros(model_dims) + self.attention.key_proj.bias = mx.zeros(model_dims) + self.attention.value_proj.bias = mx.zeros(model_dims) + self.attention.out_proj.bias = mx.zeros(model_dims) + + self.linear1 = nn.Linear(model_dims, 4 * model_dims) + self.linear2 = nn.Linear(4 * model_dims, model_dims) + + self.act = _ACTIVATIONS[activation] + + def __call__(self, x, attn_mask=None): + + y = self.layer_norm1(x) + y = self.attention(y, y, y, attn_mask) + x = y + x + + y = self.layer_norm2(x) + y = self.linear1(y) + y = self.act(y) + y = self.linear2(y) + x = y + x + return x + + +class CLIPTextModel(nn.Module): + """Implements the text encoder transformer from CLIP.""" + + def __init__(self, config: CLIPTextModelConfig, shard: Shard): + super().__init__() + + self.shard = shard + + if self.shard.is_first_layer(): + self.token_embedding = nn.Embedding(config.vocab_size, config.model_dims) + self.position_embedding = nn.Embedding(config.max_length, config.model_dims) + self.layers = [] + for i in range(config.num_layers): + if self.shard.start_layer <= i <= self.shard.end_layer: + self.layers.append(CLIPEncoderLayer(config.model_dims, config.num_heads, config.hidden_act)) + else: + self.layers.append(IdentityBlock()) + if self.shard.is_last_layer(): + self.final_layer_norm = nn.LayerNorm(config.model_dims) + + if config.projection_dim is not None: + self.text_projection = nn.Linear( + config.model_dims, config.projection_dim, bias=False + ) + + def _get_mask(self, N, dtype): + indices = mx.arange(N) + mask = indices[:, None] < indices[None] + mask = mask.astype(dtype) * (-6e4 if dtype == mx.float16 else -1e9) + return mask + + def __call__(self, x, mask=None): + # Extract some shapes + if self.shard.is_first_layer(): + B, N = x.shape + eos_tokens = x.argmax(-1) + + # Compute the embeddings + x = self.token_embedding(x) + + x = x + self.position_embedding.weight[:N] + # Compute the features from the transformer + mask = self._get_mask(N, x.dtype) + + hidden_states = [] + for l in self.layers: + x = l(x, mask) + hidden_states.append(x) + # Apply the final layernorm and return + + if self.shard.is_last_layer(): + x = self.final_layer_norm(x) + last_hidden_state = x + + + + return x, mask + def sanitize(self, weights): + sanitized_weights = {} + + for key, value in weights.items(): + if "position_ids" in key: + continue + if key.startswith("text_model."): + key = key[11:] + if key.startswith("embeddings."): + key = key[11:] + if key.startswith("encoder."): + key = key[8:] + + # Map attention layers + if "self_attn." in key: + key = key.replace("self_attn.", "attention.") + if "q_proj." in key: + key = key.replace("q_proj.", "query_proj.") + if "k_proj." in key: + key = key.replace("k_proj.", "key_proj.") + if "v_proj." in key: + key = key.replace("v_proj.", "value_proj.") + + # Map ffn layers + if "mlp.fc1" in key: + key = key.replace("mlp.fc1", "linear1") + if "mlp.fc2" in key: + key = key.replace("mlp.fc2", "linear2") + + if key.startswith("layers."): + layer_num = int(key.split(".")[1]) + if layer_num < self.shard.start_layer or layer_num > self.shard.end_layer: + continue + if not self.shard.start_layer == 0 and "embedding" in key: + continue + if not self.shard.end_layer == 22 and key.startswith("final_layer_norm"): + continue + if not self.shard.end_layer == 22 and key.startswith("text_projection"): + continue + sanitized_weights[key] = value + return sanitized_weights diff --git a/exo/inference/mlx/models/sd_models/tokenizer.py b/exo/inference/mlx/models/sd_models/tokenizer.py new file mode 100644 index 00000000..4987bb90 --- /dev/null +++ b/exo/inference/mlx/models/sd_models/tokenizer.py @@ -0,0 +1,131 @@ +# adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/tokenizer.py + +import regex +import json +import glob + + +class Tokenizer: + """A simple port of CLIPTokenizer from https://github.com/huggingface/transformers/ .""" + + def __init__(self, bpe_ranks, vocab): + self.bpe_ranks = bpe_ranks + self.vocab = vocab + self.pat = regex.compile( + r"""<\|startoftext\|>|<\|endoftext\|>|'s|'t|'re|'ve|'m|'ll|'d|[\p{L}]+|[\p{N}]|[^\s\p{L}\p{N}]+""", + regex.IGNORECASE, + ) + + self._cache = {self.bos: self.bos, self.eos: self.eos} + + @property + def bos(self): + return "<|startoftext|>" + + @property + def bos_token(self): + return self.vocab[self.bos] + + @property + def eos(self): + return "<|endoftext|>" + + @property + def eos_token(self): + return self.vocab[self.eos] + + def bpe(self, text): + if text in self._cache: + return self._cache[text] + + unigrams = list(text[:-1]) + [text[-1] + ""] + unique_bigrams = set(zip(unigrams, unigrams[1:])) + + if not unique_bigrams: + return unigrams + + # In every iteration try to merge the two most likely bigrams. If none + # was merged we are done. + # + # Ported from https://github.com/huggingface/transformers/blob/main/src/transformers/models/clip/tokenization_clip.py + while unique_bigrams: + bigram = min( + unique_bigrams, key=lambda pair: self.bpe_ranks.get(pair, float("inf")) + ) + if bigram not in self.bpe_ranks: + break + + new_unigrams = [] + skip = False + for a, b in zip(unigrams, unigrams[1:]): + if skip: + skip = False + continue + + if (a, b) == bigram: + new_unigrams.append(a + b) + skip = True + + else: + new_unigrams.append(a) + + if not skip: + new_unigrams.append(b) + + unigrams = new_unigrams + unique_bigrams = set(zip(unigrams, unigrams[1:])) + + self._cache[text] = unigrams + + return unigrams + + def tokenize(self, text, prepend_bos=True, append_eos=True): + if isinstance(text, list): + return [self.tokenize(t, prepend_bos, append_eos) for t in text] + + # Lower case cleanup and split according to self.pat. Hugging Face does + # a much more thorough job here but this should suffice for 95% of + # cases. + clean_text = regex.sub(r"\s+", " ", text.lower()) + tokens = regex.findall(self.pat, clean_text) + + # Split the tokens according to the byte-pair merge file + bpe_tokens = [ti for t in tokens for ti in self.bpe(t)] + + # Map to token ids and return + tokens = [self.vocab[t] for t in bpe_tokens] + if prepend_bos: + tokens = [self.bos_token] + tokens + if append_eos: + tokens.append(self.eos_token) + + return tokens + + def encode(self, prompt): + tokens = [self.tokenize(prompt)] + negative_text = "" + if negative_text is not None: + tokens += [self.tokenize(negative_text)] + lengths = [len(t) for t in tokens] + N = max(lengths) + tokens = [t + [0] * (N - len(t)) for t in tokens] + return tokens + +def load_tokenizer( + model_path: str, + vocab_key: str = "tokenizer_vocab", + merges_key: str = "tokenizer_merges", +): + + vocab_file = glob.glob(str(model_path/"tokenizer"/vocab_key))[0] + with open(vocab_file, encoding="utf-8") as f: + vocab = json.load(f) + + merges_file = glob.glob(str(model_path/"tokenizer"/merges_key))[0] + with open(merges_file, encoding="utf-8") as f: + bpe_merges = f.read().strip().split("\n")[1 : 49152 - 256 - 2 + 1] + bpe_merges = [tuple(m.split()) for m in bpe_merges] + bpe_ranks = dict(map(reversed, enumerate(bpe_merges))) + + return Tokenizer(bpe_ranks, vocab) + diff --git a/exo/inference/mlx/models/sd_models/unet.py b/exo/inference/mlx/models/sd_models/unet.py new file mode 100644 index 00000000..3fe44b86 --- /dev/null +++ b/exo/inference/mlx/models/sd_models/unet.py @@ -0,0 +1,629 @@ +# Adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/unet.py + +import math +from typing import Optional + +import mlx.core as mx +import mlx.nn as nn + +from dataclasses import dataclass, field +from typing import Tuple, Optional, List +from exo.inference.shard import Shard + +@dataclass +class UNetConfig: + in_channels: int = 4 + out_channels: int = 4 + conv_in_kernel: int = 3 + conv_out_kernel: int = 3 + block_out_channels: Tuple[int] = (320, 640, 1280, 1280) + layers_per_block: Tuple[int] = (2, 2, 2, 2) + mid_block_layers: int = 2 + transformer_layers_per_block: Tuple[int] = (1, 1, 1, 1) + num_attention_heads: Tuple[int] = (5, 10, 20, 20) + cross_attention_dim: Tuple[int] = (1024,) * 4 + norm_num_groups: int = 32 + down_block_types: Tuple[str] = ( + "CrossAttnDownBlock2D", + "CrossAttnDownBlock2D", + "CrossAttnDownBlock2D", + "DownBlock2D", + ) + up_block_types: Tuple[str] = ( + "UpBlock2D", + "CrossAttnUpBlock2D", + "CrossAttnUpBlock2D", + "CrossAttnUpBlock2D", + ) + addition_embed_type: Optional[str] = None + addition_time_embed_dim: Optional[int] = None + projection_class_embeddings_input_dim: Optional[int] = None + weight_files: List[str] = field(default_factory=lambda: []) + + + + @classmethod + def from_dict(cls,config): + n_blocks = len(config['block_out_channels']) + return UNetConfig( + in_channels=config["in_channels"], + out_channels=config["out_channels"], + block_out_channels=config["block_out_channels"], + layers_per_block=[config["layers_per_block"]] * n_blocks, + transformer_layers_per_block=config.get( + "transformer_layers_per_block", (1,) * 4 + ), + num_attention_heads=( + [config["attention_head_dim"]] * n_blocks + if isinstance(config["attention_head_dim"], int) + else config["attention_head_dim"] + ), + cross_attention_dim=[config["cross_attention_dim"]] * n_blocks, + norm_num_groups=config["norm_num_groups"], + down_block_types=config["down_block_types"], + up_block_types=config["up_block_types"][::-1], + addition_embed_type=config.get("addition_embed_type", None), + addition_time_embed_dim=config.get("addition_time_embed_dim", None), + projection_class_embeddings_input_dim=config.get( + "projection_class_embeddings_input_dim", None + ), + weight_files=config.get("weight_files", []) + + ) + + +def upsample_nearest(x, scale: int = 2): + B, H, W, C = x.shape + x = mx.broadcast_to(x[:, :, None, :, None, :], (B, H, scale, W, scale, C)) + x = x.reshape(B, H * scale, W * scale, C) + + return x + + +class TimestepEmbedding(nn.Module): + def __init__(self, in_channels: int, time_embed_dim: int): + super().__init__() + + self.linear_1 = nn.Linear(in_channels, time_embed_dim) + self.linear_2 = nn.Linear(time_embed_dim, time_embed_dim) + + def __call__(self, x): + x = self.linear_1(x) + x = nn.silu(x) + x = self.linear_2(x) + + return x + + +class TransformerBlock(nn.Module): + def __init__( + self, + model_dims: int, + num_heads: int, + hidden_dims: Optional[int] = None, + memory_dims: Optional[int] = None, + ): + super().__init__() + + self.norm1 = nn.LayerNorm(model_dims) + self.attn1 = nn.MultiHeadAttention(model_dims, num_heads) + self.attn1.out_proj.bias = mx.zeros(model_dims) + + memory_dims = memory_dims or model_dims + self.norm2 = nn.LayerNorm(model_dims) + self.attn2 = nn.MultiHeadAttention( + model_dims, num_heads, key_input_dims=memory_dims + ) + self.attn2.out_proj.bias = mx.zeros(model_dims) + + hidden_dims = hidden_dims or 4 * model_dims + self.norm3 = nn.LayerNorm(model_dims) + self.linear1 = nn.Linear(model_dims, hidden_dims) + self.linear2 = nn.Linear(model_dims, hidden_dims) + self.linear3 = nn.Linear(hidden_dims, model_dims) + + def __call__(self, x, memory, attn_mask, memory_mask): + # Self attention + y = self.norm1(x) + y = self.attn1(y, y, y, attn_mask) + x = x + y + + # Cross attention + y = self.norm2(x) + y = self.attn2(y, memory, memory, memory_mask) + x = x + y + + # FFN + y = self.norm3(x) + y_a = self.linear1(y) + y_b = self.linear2(y) + y = y_a * nn.gelu(y_b) + y = self.linear3(y) + x = x + y + + return x + + +class Transformer2D(nn.Module): + """A transformer model for inputs with 2 spatial dimensions.""" + + def __init__( + self, + in_channels: int, + model_dims: int, + encoder_dims: int, + num_heads: int, + num_layers: int = 1, + norm_num_groups: int = 32, + ): + super().__init__() + + self.norm = nn.GroupNorm(norm_num_groups, in_channels, pytorch_compatible=True) + self.proj_in = nn.Linear(in_channels, model_dims) + self.transformer_blocks = [ + TransformerBlock(model_dims, num_heads, memory_dims=encoder_dims) + for i in range(num_layers) + ] + self.proj_out = nn.Linear(model_dims, in_channels) + + def __call__(self, x, encoder_x, attn_mask, encoder_attn_mask): + # Save the input to add to the output + input_x = x + dtype = x.dtype + + # Perform the input norm and projection + B, H, W, C = x.shape + x = self.norm(x.astype(mx.float32)).astype(dtype).reshape(B, -1, C) + x = self.proj_in(x) + + # Apply the transformer + for block in self.transformer_blocks: + x = block(x, encoder_x, attn_mask, encoder_attn_mask) + + # Apply the output projection and reshape + x = self.proj_out(x) + x = x.reshape(B, H, W, C) + + return x + input_x + + +class ResnetBlock2D(nn.Module): + def __init__( + self, + in_channels: int, + out_channels: Optional[int] = None, + groups: int = 32, + temb_channels: Optional[int] = None, + ): + super().__init__() + + out_channels = out_channels or in_channels + + self.norm1 = nn.GroupNorm(groups, in_channels, pytorch_compatible=True) + self.conv1 = nn.Conv2d( + in_channels, out_channels, kernel_size=3, stride=1, padding=1 + ) + if temb_channels is not None: + self.time_emb_proj = nn.Linear(temb_channels, out_channels) + self.norm2 = nn.GroupNorm(groups, out_channels, pytorch_compatible=True) + self.conv2 = nn.Conv2d( + out_channels, out_channels, kernel_size=3, stride=1, padding=1 + ) + + if in_channels != out_channels: + self.conv_shortcut = nn.Linear(in_channels, out_channels) + + def __call__(self, x, temb=None): + dtype = x.dtype + + if temb is not None: + temb = self.time_emb_proj(nn.silu(temb)) + y = self.norm1(x.astype(mx.float32)).astype(dtype) + + y = nn.silu(y) + + y = self.conv1(y) + + + if temb is not None: + y = y + temb[:, None, None, :] + y = self.norm2(y.astype(mx.float32)).astype(dtype) + y = nn.silu(y) + y = self.conv2(y) + + x = y + (x if "conv_shortcut" not in self else self.conv_shortcut(x)) + return x + + +class UNetBlock2D(nn.Module): + def __init__( + self, + in_channels: int, + out_channels: int, + temb_channels: int, + prev_out_channels: Optional[int] = None, + num_layers: int = 1, + transformer_layers_per_block: int = 1, + num_attention_heads: int = 8, + cross_attention_dim=1280, + resnet_groups: int = 32, + add_downsample=True, + add_upsample=True, + add_cross_attention=True, + ): + super().__init__() + + # Prepare the in channels list for the resnets + if prev_out_channels is None: + in_channels_list = [in_channels] + [out_channels] * (num_layers - 1) + else: + in_channels_list = [prev_out_channels] + [out_channels] * (num_layers - 1) + res_channels_list = [out_channels] * (num_layers - 1) + [in_channels] + in_channels_list = [ + a + b for a, b in zip(in_channels_list, res_channels_list) + ] + + # Add resnet blocks that also process the time embedding + self.resnets = [ + ResnetBlock2D( + in_channels=ic, + out_channels=out_channels, + temb_channels=temb_channels, + groups=resnet_groups, + ) + for ic in in_channels_list + ] + + # Add optional cross attention layers + if add_cross_attention: + self.attentions = [ + Transformer2D( + in_channels=out_channels, + model_dims=out_channels, + num_heads=num_attention_heads, + num_layers=transformer_layers_per_block, + encoder_dims=cross_attention_dim, + ) + for i in range(num_layers) + ] + + # Add an optional downsampling layer + if add_downsample: + self.downsample = nn.Conv2d( + out_channels, out_channels, kernel_size=3, stride=2, padding=1 + ) + + # or upsampling layer + if add_upsample: + self.upsample = nn.Conv2d( + out_channels, out_channels, kernel_size=3, stride=1, padding=1 + ) + + def __call__( + self, + x, + encoder_x=None, + temb=None, + attn_mask=None, + encoder_attn_mask=None, + residual_hidden_states=None, + ): + output_states = [] + + for i in range(len(self.resnets)): + if residual_hidden_states is not None: + x = mx.concatenate([x, residual_hidden_states.pop()], axis=-1) + + x = self.resnets[i](x, temb) + + if "attentions" in self: + x = self.attentions[i](x, encoder_x, attn_mask, encoder_attn_mask) + + output_states.append(x) + + if "downsample" in self: + x = self.downsample(x) + output_states.append(x) + + if "upsample" in self: + x = self.upsample(upsample_nearest(x)) + output_states.append(x) + + return x, output_states + + +class UNetModel(nn.Module): + """The conditional 2D UNet model that actually performs the denoising.""" + + def __init__(self, config: UNetConfig, shard: Shard): + super().__init__() + self.shard = shard + self.start_layer = shard.start_layer + self.end_layer = shard.end_layer + self.layers_range = list(range(self.start_layer, self.end_layer+1)) + if shard.is_first_layer(): + self.conv_in = nn.Conv2d( + config.in_channels, + config.block_out_channels[0], + config.conv_in_kernel, + padding=(config.conv_in_kernel - 1) // 2, + ) + + self.timesteps = nn.SinusoidalPositionalEncoding( + config.block_out_channels[0], + max_freq=1, + min_freq=math.exp( + -math.log(10000) + 2 * math.log(10000) / config.block_out_channels[0] + ), + scale=1.0, + cos_first=True, + full_turns=False, + ) + self.time_embedding = TimestepEmbedding( + config.block_out_channels[0], + config.block_out_channels[0] * 4, + ) + + if config.addition_embed_type == "text_time": + self.add_time_proj = nn.SinusoidalPositionalEncoding( + config.addition_time_embed_dim, + max_freq=1, + min_freq=math.exp( + -math.log(10000) + + 2 * math.log(10000) / config.addition_time_embed_dim + ), + scale=1.0, + cos_first=True, + full_turns=False, + ) + self.add_embedding = TimestepEmbedding( + config.projection_class_embeddings_input_dim, + config.block_out_channels[0] * 4, + ) + + # Make the downsampling blocks + block_channels = [config.block_out_channels[0]] + list( + config.block_out_channels + ) + self.down_blocks = [] + + for i, (in_channels, out_channels) in enumerate(zip(block_channels, block_channels[1:])): + if i in self.layers_range: + self.down_blocks.append( + UNetBlock2D( + in_channels=in_channels, + out_channels=out_channels, + temb_channels=config.block_out_channels[0] * 4, + num_layers=config.layers_per_block[i], + transformer_layers_per_block=config.transformer_layers_per_block[i], + num_attention_heads=config.num_attention_heads[i], + cross_attention_dim=config.cross_attention_dim[i], + resnet_groups=config.norm_num_groups, + add_downsample=(i < len(config.block_out_channels) - 1), + add_upsample=False, + add_cross_attention="CrossAttn" in config.down_block_types[i], + ) + ) + else: + self.down_blocks.append(nn.Identity()) + + + # Make the middle block + if 4 in self.layers_range: + self.mid_blocks = [ + ResnetBlock2D( + in_channels=config.block_out_channels[-1], + out_channels=config.block_out_channels[-1], + temb_channels=config.block_out_channels[0] * 4, + groups=config.norm_num_groups, + ), + Transformer2D( + in_channels=config.block_out_channels[-1], + model_dims=config.block_out_channels[-1], + num_heads=config.num_attention_heads[-1], + num_layers=config.transformer_layers_per_block[-1], + encoder_dims=config.cross_attention_dim[-1], + ), + ResnetBlock2D( + in_channels=config.block_out_channels[-1], + out_channels=config.block_out_channels[-1], + temb_channels=config.block_out_channels[0] * 4, + groups=config.norm_num_groups, + ), + ] + + # Make the upsampling blocks + block_channels = ( + [config.block_out_channels[0]] + + list(config.block_out_channels) + + [config.block_out_channels[-1]] + ) + + total_items = len(block_channels) - 3 + reversed_channels = list(reversed(list(zip(block_channels, block_channels[1:], block_channels[2:])))) + + self.up_blocks = [] + for rev_i, (in_channels, out_channels, prev_out_channels) in enumerate(reversed_channels): + i = total_items - rev_i + if rev_i+5 in self.layers_range: + self.up_blocks.append( + UNetBlock2D( + in_channels=in_channels, + out_channels=out_channels, + temb_channels=config.block_out_channels[0] * 4, + prev_out_channels=prev_out_channels, + num_layers=config.layers_per_block[i] + 1, + transformer_layers_per_block=config.transformer_layers_per_block[i], + num_attention_heads=config.num_attention_heads[i], + cross_attention_dim=config.cross_attention_dim[i], + resnet_groups=config.norm_num_groups, + add_downsample=False, + add_upsample=(i > 0), + add_cross_attention="CrossAttn" in config.up_block_types[i], + ) + ) + else: + self.up_blocks.append(nn.Identity()) + + + if shard.is_last_layer(): + self.conv_norm_out = nn.GroupNorm( + config.norm_num_groups, + config.block_out_channels[0], + pytorch_compatible=True, + ) + self.conv_out = nn.Conv2d( + config.block_out_channels[0], + config.out_channels, + config.conv_out_kernel, + padding=(config.conv_out_kernel - 1) // 2, + ) + + def __call__( + self, + x, + timestep, + encoder_x, + attn_mask=None, + encoder_attn_mask=None, + text_time=None, + residuals=None, + ): + # Compute the time embeddings + + temb = self.timesteps(timestep).astype(x.dtype) + temb = self.time_embedding(temb) + + # Add the extra text_time conditioning + if text_time is not None: + text_emb, time_ids = text_time + emb = self.add_time_proj(time_ids).flatten(1).astype(x.dtype) + emb = mx.concatenate([text_emb, emb], axis=-1) + emb = self.add_embedding(emb) + temb = temb + emb + + if self.shard.is_first_layer(): + # Preprocess the input + x = self.conv_in(x) + residuals = [x] + # Run the downsampling part of the unet + + for i in range(len(self.down_blocks)): + if i in self.layers_range: + x, res = self.down_blocks[i]( + x, + encoder_x=encoder_x, + temb=temb, + attn_mask=attn_mask, + encoder_attn_mask=encoder_attn_mask, + ) + residuals.extend(res) + else: + x= self.down_blocks[i](x) + + if 4 in self.layers_range: + # Run the middle part of the unet + x = self.mid_blocks[0](x, temb) + x = self.mid_blocks[1](x, encoder_x, attn_mask, encoder_attn_mask) + x = self.mid_blocks[2](x, temb) + + # Run the upsampling part of the unet + for i in range(len(self.up_blocks)): + if i+5 in self.layers_range: + x, _ = self.up_blocks[i]( + x, + encoder_x=encoder_x, + temb=temb, + attn_mask=attn_mask, + encoder_attn_mask=encoder_attn_mask, + residual_hidden_states=residuals, + ) + else: + x= self.up_blocks[i](x) + + # Postprocess the output + if self.shard.is_last_layer(): + dtype = x.dtype + x = self.conv_norm_out(x.astype(mx.float32)).astype(dtype) + x = nn.silu(x) + x = self.conv_out(x) + + return x, residuals + def sanitize(self, weights): + sanitized_weights = {} + for key, value in weights.items(): + k1="" + k2="" + if "downsamplers" in key: + key = key.replace("downsamplers.0.conv", "downsample") + if "upsamplers" in key: + key = key.replace("upsamplers.0.conv", "upsample") + + # Map the mid block + if "mid_block.resnets.0" in key: + key = key.replace("mid_block.resnets.0", "mid_blocks.0") + if "mid_block.attentions.0" in key: + key = key.replace("mid_block.attentions.0", "mid_blocks.1") + if "mid_block.resnets.1" in key: + key = key.replace("mid_block.resnets.1", "mid_blocks.2") + + # Map attention layers + if "to_k" in key: + key = key.replace("to_k", "key_proj") + if "to_out.0" in key: + key = key.replace("to_out.0", "out_proj") + if "to_q" in key: + key = key.replace("to_q", "query_proj") + if "to_v" in key: + key = key.replace("to_v", "value_proj") + + # Map transformer ffn + if "ff.net.2" in key: + key = key.replace("ff.net.2", "linear3") + if "ff.net.0" in key: + k1 = key.replace("ff.net.0.proj", "linear1") + k2 = key.replace("ff.net.0.proj", "linear2") + v1, v2 = mx.split(value, 2) + + + if "conv_shortcut.weight" in key: + value = value.squeeze() + + # Transform the weights from 1x1 convs to linear + if len(value.shape) == 4 and ("proj_in" in key or "proj_out" in key): + value = value.squeeze() + + if len(value.shape) == 4: + value = value.transpose(0, 2, 3, 1) + value = value.reshape(-1).reshape(value.shape) + + if key.startswith("conv_in") : + if 0 not in self.layers_range: + continue + + if key.startswith("down_blocks"): + layer_num = int(key.split(".")[1]) + if layer_num not in self.layers_range: + continue + + if key.startswith("mid_block"): + if 4 not in self.layers_range: + continue + + if key.startswith("up_blocks"): + layer_num = int(key.split(".")[1]) + if (layer_num+5) not in self.layers_range: + continue + + if key.startswith("conv_out") or key.startswith("conv_norm_out"): + if 8 not in self.layers_range: + continue + + if len(k1)>0: + sanitized_weights[k1] = v1 + sanitized_weights[k2] = v2 + else: + sanitized_weights[key] = value + + + return sanitized_weights diff --git a/exo/inference/mlx/models/sd_models/vae.py b/exo/inference/mlx/models/sd_models/vae.py new file mode 100644 index 00000000..39037bdf --- /dev/null +++ b/exo/inference/mlx/models/sd_models/vae.py @@ -0,0 +1,390 @@ +# Adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/vae.py + +import math +from typing import List + +import mlx.core as mx +import mlx.nn as nn + +from .unet import ResnetBlock2D, upsample_nearest +from dataclasses import dataclass, field +from exo.inference.shard import Shard +from typing import Tuple +import inspect +from ..base import IdentityBlock + +@dataclass +class AutoencoderConfig: + in_channels: int = 3 + out_channels: int = 3 + latent_channels_out: int = 8 + latent_channels_in: int = 4 + block_out_channels: Tuple[int] = (128, 256, 512, 512) + layers_per_block: int = 2 + norm_num_groups: int = 32 + scaling_factor: float = 0.18215 + weight_files: List[str] = field(default_factory=lambda: []) + @classmethod + def from_dict(cls, params): + return cls(**{k: v for k, v in params.items() if k in inspect.signature(cls).parameters}) + + +@dataclass +class ModelArgs(AutoencoderConfig): + shard: Shard = field(default_factory=lambda: Shard("", 0, 0, 0)) + + def __post_init__(self): + if isinstance(self.shard, dict): + self.shard = Shard(**self.shard) + + if not isinstance(self.shard, Shard): + raise TypeError(f"Expected shard to be a Shard instance or a dict, got {type(self.shard)} instead") + + if not self.shard.is_first_layer(): + self.vision_config = None + + +class Attention(nn.Module): + """A single head unmasked attention for use with the VAE.""" + + def __init__(self, dims: int, norm_groups: int = 32): + super().__init__() + + self.group_norm = nn.GroupNorm(norm_groups, dims, pytorch_compatible=True) + self.query_proj = nn.Linear(dims, dims) + self.key_proj = nn.Linear(dims, dims) + self.value_proj = nn.Linear(dims, dims) + self.out_proj = nn.Linear(dims, dims) + + def __call__(self, x): + B, H, W, C = x.shape + + y = self.group_norm(x) + + queries = self.query_proj(y).reshape(B, H * W, C) + keys = self.key_proj(y).reshape(B, H * W, C) + values = self.value_proj(y).reshape(B, H * W, C) + + scale = 1 / math.sqrt(queries.shape[-1]) + scores = (queries * scale) @ keys.transpose(0, 2, 1) + attn = mx.softmax(scores, axis=-1) + y = (attn @ values).reshape(B, H, W, C) + + y = self.out_proj(y) + x = x + y + + return x + + +class EncoderDecoderBlock2D(nn.Module): + def __init__( + self, + in_channels: int, + out_channels: int, + num_layers: int = 1, + resnet_groups: int = 32, + add_downsample=True, + add_upsample=True, + ): + super().__init__() + + # Add the resnet blocks + self.resnets = [ + ResnetBlock2D( + in_channels=in_channels if i == 0 else out_channels, + out_channels=out_channels, + groups=resnet_groups, + ) + for i in range(num_layers) + ] + + # Add an optional downsampling layer + if add_downsample: + self.downsample = nn.Conv2d( + out_channels, out_channels, kernel_size=3, stride=2, padding=0 + ) + + # or upsampling layer + if add_upsample: + self.upsample = nn.Conv2d( + out_channels, out_channels, kernel_size=3, stride=1, padding=1 + ) + + def __call__(self, x): + for resnet in self.resnets: + x = resnet(x) + if "downsample" in self: + x = mx.pad(x, [(0, 0), (0, 1), (0, 1), (0, 0)]) + x = self.downsample(x) + + if "upsample" in self: + x = self.upsample(upsample_nearest(x)) + return x + + +class Encoder(nn.Module): + """Implements the encoder side of the Autoencoder.""" + + def __init__( + self, + in_channels: int, + out_channels: int, + block_out_channels: List[int] = [64], + layers_per_block: int = 2, + resnet_groups: int = 32, + ): + super().__init__() + + self.conv_in = nn.Conv2d( + in_channels, block_out_channels[0], kernel_size=3, stride=1, padding=1 + ) + + channels = [block_out_channels[0]] + list(block_out_channels) + self.down_blocks = [ + EncoderDecoderBlock2D( + in_channels, + out_channels, + num_layers=layers_per_block, + resnet_groups=resnet_groups, + add_downsample=i < len(block_out_channels) - 1, + add_upsample=False, + ) + for i, (in_channels, out_channels) in enumerate(zip(channels, channels[1:])) + ] + + self.mid_blocks = [ + ResnetBlock2D( + in_channels=block_out_channels[-1], + out_channels=block_out_channels[-1], + groups=resnet_groups, + ), + Attention(block_out_channels[-1], resnet_groups), + ResnetBlock2D( + in_channels=block_out_channels[-1], + out_channels=block_out_channels[-1], + groups=resnet_groups, + ), + ] + + self.conv_norm_out = nn.GroupNorm( + resnet_groups, block_out_channels[-1], pytorch_compatible=True + ) + self.conv_out = nn.Conv2d(block_out_channels[-1], out_channels, 3, padding=1) + + def __call__(self, x): + x = self.conv_in(x) + + for l in self.down_blocks: + x = l(x) + + x = self.mid_blocks[0](x) + x = self.mid_blocks[1](x) + x = self.mid_blocks[2](x) + + x = self.conv_norm_out(x) + x = nn.silu(x) + x = self.conv_out(x) + + return x + + +class Decoder(nn.Module): + """Implements the decoder side of the Autoencoder.""" + + def __init__( + self, + in_channels: int, + out_channels: int, + shard: Shard, + layer_range: List[int], + block_out_channels: List[int] = [64], + layers_per_block: int = 2, + resnet_groups: int = 32, + ): + super().__init__() + self.out_channels = out_channels + self.layers_range = layer_range + if 0 in layer_range: + self.conv_in = nn.Conv2d( + in_channels, block_out_channels[-1], kernel_size=3, stride=1, padding=1 + ) + + if 0 in layer_range: + self.mid_blocks = [ + ResnetBlock2D( + in_channels=block_out_channels[-1], + out_channels=block_out_channels[-1], + groups=resnet_groups, + ), + Attention(block_out_channels[-1], resnet_groups), + ResnetBlock2D( + in_channels=block_out_channels[-1], + out_channels=block_out_channels[-1], + groups=resnet_groups, + ), + ] + + channels = list(reversed(block_out_channels)) + channels = [channels[0]] + channels + + self.up_blocks = [] + current_layer = 1 + + for i, (in_channels, out_channels) in enumerate(zip(channels, channels[1:])): + if current_layer in layer_range: + self.up_blocks.append( + EncoderDecoderBlock2D( + in_channels, + out_channels, + num_layers=layers_per_block, + resnet_groups=resnet_groups, + add_downsample=False, + add_upsample=i < len(block_out_channels) - 1, + ) + ) + else: + self.up_blocks.append(IdentityBlock()) + current_layer += 1 + if 4 in layer_range: + self.conv_norm_out = nn.GroupNorm( + resnet_groups, block_out_channels[0], pytorch_compatible=True + ) + self.conv_out = nn.Conv2d(block_out_channels[0], self.out_channels, 3, padding=1) + + + def __call__(self, x): + if 0 in self.layers_range: + x = self.conv_in(x) + x = self.mid_blocks[0](x) + x = self.mid_blocks[1](x) + x = self.mid_blocks[2](x) + + for l in self.up_blocks: + x = l(x) + if 4 in self.layers_range: + x = self.conv_norm_out(x) + x = nn.silu(x) + x = self.conv_out(x) + return x + + +class Autoencoder(nn.Module): + """The autoencoder that allows us to perform diffusion in the latent space.""" + + def __init__(self, config: AutoencoderConfig, shard: Shard): + super().__init__() + self.shard = shard + self.start_layer = shard.start_layer + self.end_layer = shard.end_layer + self.layers_range = list(range(self.start_layer, self.end_layer+1)) + self.latent_channels = config.latent_channels_in + self.scaling_factor = config.scaling_factor + self.decoder_only = True # stable diffusion text to speech only uses decoder from the autoencoder + if not self.decoder_only: + self.encoder = Encoder( + config.in_channels, + config.latent_channels_out, + config.block_out_channels, + config.layers_per_block, + resnet_groups=config.norm_num_groups, + ) + self.quant_proj = nn.Linear( + config.latent_channels_out, config.latent_channels_out + ) + self.decoder = Decoder( + config.latent_channels_in, + config.out_channels, + shard, + self.layers_range, + config.block_out_channels, + config.layers_per_block + 1, + resnet_groups=config.norm_num_groups, + ) + if 0 in self.layers_range: + self.post_quant_proj = nn.Linear( + config.latent_channels_in, config.latent_channels_in + ) + + def decode(self, z): + if 0 in self.layers_range: + z = z / self.scaling_factor + z=self.post_quant_proj(z) + return self.decoder(z) + + def encode(self, x): + x = self.encoder(x) + x = self.quant_proj(x) + mean, logvar = x.split(2, axis=-1) + mean = mean * self.scaling_factor + logvar = logvar + 2 * math.log(self.scaling_factor) + + return mean, logvar + + def __call__(self, x, key=None): + mean, logvar = self.encode(x) + z = mx.random.normal(mean.shape, key=key) * mx.exp(0.5 * logvar) + mean + x_hat = self.decode(z) + + return dict(x_hat=x_hat, z=z, mean=mean, logvar=logvar) + + def sanitize(self, weights): + layers = self.layers_range + sanitized_weights = {} + for key, value in weights.items(): + if 'decoder' in key and self.decoder_only: + if "downsamplers" in key: + key = key.replace("downsamplers.0.conv", "downsample") + if "upsamplers" in key: + key = key.replace("upsamplers.0.conv", "upsample") + + # Map attention layers + if "key" in key: + key = key.replace("key", "key_proj") + if "proj_attn" in key: + key = key.replace("proj_attn", "out_proj") + if "query" in key: + key = key.replace("query", "query_proj") + if "value" in key: + key = key.replace("value", "value_proj") + + # Map the mid block + if "mid_block.resnets.0" in key: + key = key.replace("mid_block.resnets.0", "mid_blocks.0") + if "mid_block.attentions.0" in key: + key = key.replace("mid_block.attentions.0", "mid_blocks.1") + if "mid_block.resnets.1" in key: + key = key.replace("mid_block.resnets.1", "mid_blocks.2") + + # Map the quant/post_quant layers + if "quant_conv" in key: + key = key.replace("quant_conv", "quant_proj") + value = value.squeeze() + + # Map the conv_shortcut to linear + if "conv_shortcut.weight" in key: + value = value.squeeze() + + if len(value.shape) == 4: + value = value.transpose(0, 2, 3, 1) + value = value.reshape(-1).reshape(value.shape) + + if key.startswith("decoder.mid_blocks."): + if 0 in layers: + sanitized_weights[key] = value + if "conv_in" in key and 0 in layers: + sanitized_weights[key] = value + if key.startswith("decoder.up_blocks."): + layer_num = int(key.split(".")[2])+1 + if layer_num in layers: + sanitized_weights[key] = value + if key.startswith("decoder.conv_norm_out") and 4 in layers: + sanitized_weights[key] = value + if key.startswith("decoder.conv_out") and 4 in layers: + sanitized_weights[key] = value + + if "post_quant_conv" in key and 0 in layers: + key = key.replace("quant_conv", "quant_proj") + value = value.squeeze() + sanitized_weights[key] = value + return sanitized_weights + diff --git a/exo/inference/mlx/sharded_inference_engine.py b/exo/inference/mlx/sharded_inference_engine.py index e43a65da..dc50c1d6 100644 --- a/exo/inference/mlx/sharded_inference_engine.py +++ b/exo/inference/mlx/sharded_inference_engine.py @@ -53,10 +53,11 @@ class MLXDynamicShardInferenceEngine(InferenceEngine): tokens = await asyncio.get_running_loop().run_in_executor(self.executor, self.tokenizer.decode, tokens) return tokens - async def infer_tensor(self, request_id: str, shard: Shard, input_data: np.ndarray) -> np.ndarray: + async def infer_tensor(self, request_id: str, shard: Shard, input_data: np.ndarray, inference_state: Optional[dict] = None) -> np.ndarray: await self.ensure_shard(shard) - output_data: np.ndarray = np.array(await asyncio.get_running_loop().run_in_executor(self.executor, self.model, mx.array(input_data), request_id)) - return output_data + output_data, inference_state = await asyncio.get_running_loop().run_in_executor(self.executor, self.model, mx.array(input_data), request_id, inference_state) + output_data = np.array(output_data) + return output_data, inference_state async def ensure_shard(self, shard: Shard): if self.shard == shard: diff --git a/exo/inference/mlx/sharded_utils.py b/exo/inference/mlx/sharded_utils.py index 1a6343e9..3a23badc 100644 --- a/exo/inference/mlx/sharded_utils.py +++ b/exo/inference/mlx/sharded_utils.py @@ -61,8 +61,16 @@ def _get_classes(config: dict): def load_config(model_path: Path) -> dict: try: - with open(model_path/"config.json", "r") as f: - config = json.load(f) + config_path = model_path / "config.json" + if config_path.exists(): + with open(config_path, "r") as f: + config = json.load(f) + return config + + model_index_path = model_path / "model_index.json" + if model_index_path.exists(): + config = load_model_index(model_path, model_index_path) + return config except FileNotFoundError: logging.error(f"Config file not found in {model_path}") raise @@ -109,6 +117,24 @@ def load_model_shard( # Try weight for back-compat weight_files = glob.glob(str(model_path/"weight*.safetensors")) + model_class, model_args_class = _get_classes(config=config) + + class ShardedModel(model_class): + def __init__(self, args): + super().__init__(args) + self.shard = Shard(args.shard.model_id, args.shard.start_layer, args.shard.end_layer, args.shard.n_layers) + + def __call__(self, x, *args, **kwargs): + y = super().__call__(x[None] if self.shard.is_first_layer() else x, *args, **kwargs) + return y + + model_args = model_args_class.from_dict(config) + model = ShardedModel(model_args) + + if config.get("model_index", False): + model.load() + return model + if not weight_files: logging.error(f"No safetensors found in {model_path}") raise FileNotFoundError(f"No safetensors found in {model_path}") @@ -128,19 +154,7 @@ def load_model_shard( weights.update(mx.load(wf)) - model_class, model_args_class = _get_classes(config=config) - - class ShardedModel(model_class): - def __init__(self, args): - super().__init__(args) - self.shard = Shard(args.shard.model_id, args.shard.start_layer, args.shard.end_layer, args.shard.n_layers) - - def __call__(self, x, *args, **kwargs): - y = super().__call__(x[None] if self.shard.is_first_layer() else x, *args, **kwargs) - return y - - model_args = model_args_class.from_dict(config) - model = ShardedModel(model_args) + if hasattr(model, "sanitize"): weights = model.sanitize(weights) @@ -182,6 +196,9 @@ async def load_shard( processor.eos_token_id = processor.tokenizer.eos_token_id processor.encode = processor.tokenizer.encode return model, processor + elif hasattr(model, "tokenizer"): + tokenizer = model.tokenizer + return model, tokenizer else: tokenizer = load_tokenizer(model_path, tokenizer_config) return model, tokenizer @@ -210,3 +227,29 @@ async def get_image_from_str(_image_str: str): return img else: raise ValueError("Invalid image_str format. Must be a URL or a base64 encoded image.") + +# loading a combined config for all models in the index +def load_model_index(model_path: Path, model_index_path: Path): + models_config = {} + with open(model_index_path, "r") as f: + model_index = json.load(f) + models_config["model_index"] = True + models_config["model_type"] = model_index["_class_name"] + models_config["models"] = {} + for model in model_index.keys(): + model_config_path = glob.glob(str(model_path / model / "*config.json")) + if len(model_config_path)>0: + with open(model_config_path[0], "r") as f: + model_config = { } + model_config["model_type"] = model + model_config["config"] = json.load(f) + model_config["path"] = model_path / model + if model_config["path"]/"*model.safetensors": + model_config["config"].update({"weight_files": list(glob.glob(str(model_config["path"]/"*model.safetensors")))}) + model_config["path"] = str(model_path / model) + m = {} + m[model] = model_config + models_config.update(m) + models_config = json.dumps(models_config) + models_config = json.loads(models_config) + return models_config diff --git a/exo/inference/mlx/stateful_model.py b/exo/inference/mlx/stateful_model.py index ff213ace..79e9baeb 100644 --- a/exo/inference/mlx/stateful_model.py +++ b/exo/inference/mlx/stateful_model.py @@ -1,4 +1,4 @@ -from typing import Dict, Tuple +from typing import Dict, Tuple, Optional from collections import OrderedDict import mlx.core as mx @@ -29,14 +29,17 @@ class StatefulModel(nn.Module): self.caches[request_id] = cache - def __call__(self, x, request_id: str): - if request_id not in self.caches: - self.init_cache(request_id) + def __call__(self, x, request_id: str, inference_state: Optional[dict] = None): + if self.model.model_type !='StableDiffusionPipeline': + if request_id not in self.caches: + self.init_cache(request_id) + else: + self.caches.move_to_end(request_id) + + cache = self.caches[request_id] + + y = self.model(x, cache=cache) else: - self.caches.move_to_end(request_id) - - cache = self.caches[request_id] - - y = self.model(x, cache=cache) - return y + y, inference_state = self.model(x, **inference_state) + return y, inference_state diff --git a/exo/main.py b/exo/main.py index b6701c6d..03de33d0 100644 --- a/exo/main.py +++ b/exo/main.py @@ -126,7 +126,7 @@ api = ChatGPTAPI( default_model=args.default_model ) node.on_token.register("update_topology_viz").on_next( - lambda req_id, tokens, __: topology_viz.update_prompt_output(req_id, inference_engine.tokenizer.decode(tokens)) if topology_viz and hasattr(inference_engine, "tokenizer") else None + lambda req_id, tokens, __: topology_viz.update_prompt_output(req_id, inference_engine.tokenizer.decode(tokens)) if topology_viz and hasattr(inference_engine, "tokenizer") and inference_engine.shard.model_id != 'stable-diffusion-2-1-base' else None ) diff --git a/exo/models.py b/exo/models.py index 1fb567a6..8262251a 100644 --- a/exo/models.py +++ b/exo/models.py @@ -80,6 +80,8 @@ model_cards = { # gemma "gemma2-9b": { "layers": 42, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/gemma-2-9b-it-4bit", }, }, "gemma2-27b": { "layers": 46, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/gemma-2-27b-it-4bit", }, }, + # stable diffusion + "stable-diffusion-2-1-base": { "layers": 37, "repo": { "MLXDynamicShardInferenceEngine": "stabilityai/stable-diffusion-2-1-base" } }, # dummy "dummy": { "layers": 8, "repo": { "DummyInferenceEngine": "dummy", }, }, } @@ -113,6 +115,7 @@ pretty_name = { "qwen-2.5-math-72b": "Qwen 2.5 72B (Math)", "llama-3-8b": "Llama 3 8B", "llama-3-70b": "Llama 3 70B", + "stable-diffusion-2-1-base": "Stable Diffusion 2.1", } def get_repo(model_id: str, inference_engine_classname: str) -> Optional[str]: diff --git a/exo/networking/grpc/grpc_peer_handle.py b/exo/networking/grpc/grpc_peer_handle.py index a788b87a..98220e33 100644 --- a/exo/networking/grpc/grpc_peer_handle.py +++ b/exo/networking/grpc/grpc_peer_handle.py @@ -11,7 +11,8 @@ from exo.inference.shard import Shard from exo.topology.topology import Topology from exo.topology.device_capabilities import DeviceCapabilities, DeviceFlops from exo.helpers import DEBUG - +import json +import mlx.core as mx class GRPCPeerHandle(PeerHandle): def __init__(self, _id: str, address: str, device_capabilities: DeviceCapabilities): @@ -85,7 +86,7 @@ class GRPCPeerHandle(PeerHandle): return np.frombuffer(response.tensor_data, dtype=np.dtype(response.dtype)).reshape(response.shape) - async def send_tensor(self, shard: Shard, tensor: np.ndarray, request_id: Optional[str] = None) -> Optional[np.array]: + async def send_tensor(self, shard: Shard, tensor: np.ndarray, inference_state: Optional[dict] = None, request_id: Optional[str] = None) -> Optional[np.array]: request = node_service_pb2.TensorRequest( shard=node_service_pb2.Shard( model_id=shard.model_id, @@ -95,6 +96,7 @@ class GRPCPeerHandle(PeerHandle): ), tensor=node_service_pb2.Tensor(tensor_data=tensor.tobytes(), shape=tensor.shape, dtype=str(tensor.dtype)), request_id=request_id, + inference_state=self.serialize_inference_state(inference_state) ) response = await self.stub.SendTensor(request) @@ -128,9 +130,43 @@ class GRPCPeerHandle(PeerHandle): return topology async def send_result(self, request_id: str, result: List[int], is_finished: bool) -> None: - request = node_service_pb2.SendResultRequest(request_id=request_id, result=result, is_finished=is_finished) + tensor = None + if isinstance(result, np.ndarray): + tensor = node_service_pb2.Tensor(tensor_data=result.tobytes(), shape=result.shape, dtype=str(result.dtype)) + result = [] + request = node_service_pb2.SendResultRequest(request_id=request_id, result=result, tensor=tensor, is_finished=is_finished) await self.stub.SendResult(request) async def send_opaque_status(self, request_id: str, status: str) -> None: request = node_service_pb2.SendOpaqueStatusRequest(request_id=request_id, status=status) await self.stub.SendOpaqueStatus(request) + + def serialize_inference_state(self, inference_state: dict) -> node_service_pb2.InferenceState: + proto_inference_state = node_service_pb2.InferenceState() + other_data = {} + for k, v in inference_state.items(): + if isinstance(v, mx.array): + np_array = np.array(v) + tensor_data = node_service_pb2.Tensor( + tensor_data=np_array.tobytes(), + shape=list(np_array.shape), + dtype=str(np_array.dtype) + ) + proto_inference_state.tensor_data[k].CopyFrom(tensor_data) + elif isinstance(v, list) and all(isinstance(item, mx.array) for item in v): + tensor_list = node_service_pb2.TensorList() + for tensor in v: + np_array = np.array(tensor) + tensor_data = node_service_pb2.Tensor( + tensor_data=np_array.tobytes(), + shape=list(np_array.shape), + dtype=str(np_array.dtype) + ) + tensor_list.tensors.append(tensor_data) + proto_inference_state.tensor_list_data[k].CopyFrom(tensor_list) + else: + # For non-tensor data, we'll still use JSON + other_data[k] = v + if other_data: + proto_inference_state.other_data_json = json.dumps(other_data) + return proto_inference_state diff --git a/exo/networking/grpc/grpc_server.py b/exo/networking/grpc/grpc_server.py index db489475..c03ba507 100644 --- a/exo/networking/grpc/grpc_server.py +++ b/exo/networking/grpc/grpc_server.py @@ -8,6 +8,8 @@ from . import node_service_pb2_grpc from exo import DEBUG from exo.inference.shard import Shard from exo.orchestration import Node +import json +import mlx.core as mx class GRPCServer(node_service_pb2_grpc.NodeServiceServicer): @@ -65,7 +67,9 @@ class GRPCServer(node_service_pb2_grpc.NodeServiceServicer): tensor = np.frombuffer(request.tensor.tensor_data, dtype=np.dtype(request.tensor.dtype)).reshape(request.tensor.shape) request_id = request.request_id - result = await self.node.process_tensor(shard, tensor, request_id) + inference_state = self.deserialize_inference_state(request.inference_state) + + result = await self.node.process_tensor(shard, tensor, request_id, inference_state) if DEBUG >= 5: print(f"SendTensor tensor {shard=} {tensor=} {request_id=} result: {result}") tensor_data = result.tobytes() if result is not None else None return node_service_pb2.Tensor(tensor_data=tensor_data, shape=result.shape, dtype=str(result.dtype)) if result is not None else node_service_pb2.Tensor() @@ -104,7 +108,11 @@ class GRPCServer(node_service_pb2_grpc.NodeServiceServicer): request_id = request.request_id result = request.result is_finished = request.is_finished + img = request.tensor if DEBUG >= 5: print(f"Received SendResult request: {request_id=} {result=} {is_finished=}") + result = list(result) + if len(img.tensor_data) > 0: + result=np.frombuffer(img.tensor_data, dtype=np.dtype(img.dtype)).reshape(img.shape) self.node.on_token.trigger_all(request_id, result, is_finished) return node_service_pb2.Empty() @@ -117,3 +125,22 @@ class GRPCServer(node_service_pb2_grpc.NodeServiceServicer): async def HealthCheck(self, request, context): return node_service_pb2.HealthCheckResponse(is_healthy=True) + + def deserialize_inference_state(self,inference_state_proto: node_service_pb2.InferenceState) -> dict: + inference_state = {} + + for k, tensor_data in inference_state_proto.tensor_data.items(): + np_array = np.frombuffer(tensor_data.tensor_data, dtype=tensor_data.dtype).reshape(tensor_data.shape) + inference_state[k] = mx.array(np_array) + + for k, tensor_list in inference_state_proto.tensor_list_data.items(): + inference_state[k] = [ + mx.array(np.frombuffer(tensor.tensor_data, dtype=tensor.dtype).reshape(tensor.shape)) + for tensor in tensor_list.tensors + ] + + if inference_state_proto.other_data_json: + other_data = json.loads(inference_state_proto.other_data_json) + inference_state.update(other_data) + + return inference_state diff --git a/exo/networking/grpc/node_service.proto b/exo/networking/grpc/node_service.proto index 146976b6..a04c997b 100644 --- a/exo/networking/grpc/node_service.proto +++ b/exo/networking/grpc/node_service.proto @@ -29,6 +29,7 @@ message TensorRequest { Shard shard = 1; Tensor tensor = 2; optional string request_id = 3; + optional InferenceState inference_state = 4; } message GetInferenceResultRequest { @@ -46,6 +47,16 @@ message Tensor { string dtype = 3; } +message TensorList { + repeated Tensor tensors = 1; +} + +message InferenceState { + map tensor_data = 1; + map tensor_list_data = 2; + string other_data_json = 3; +} + message CollectTopologyRequest { repeated string visited = 1; int32 max_depth = 2; @@ -76,7 +87,8 @@ message DeviceCapabilities { message SendResultRequest { string request_id = 1; repeated int32 result = 2; - bool is_finished = 3; + optional Tensor tensor = 3; + bool is_finished = 4; } message SendOpaqueStatusRequest { diff --git a/exo/networking/grpc/node_service_pb2.py b/exo/networking/grpc/node_service_pb2.py index ab9e6bac..78f4a75b 100644 --- a/exo/networking/grpc/node_service_pb2.py +++ b/exo/networking/grpc/node_service_pb2.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: node_service.proto +# source: exo/networking/grpc/node_service.proto # Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor @@ -14,53 +14,65 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12node_service.proto\x12\x0cnode_service\"S\n\x05Shard\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x13\n\x0bstart_layer\x18\x02 \x01(\x05\x12\x11\n\tend_layer\x18\x03 \x01(\x05\x12\x10\n\x08n_layers\x18\x04 \x01(\x05\"k\n\rPromptRequest\x12\"\n\x05shard\x18\x01 \x01(\x0b\x32\x13.node_service.Shard\x12\x0e\n\x06prompt\x18\x02 \x01(\t\x12\x17\n\nrequest_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x81\x01\n\rTensorRequest\x12\"\n\x05shard\x18\x01 \x01(\x0b\x32\x13.node_service.Shard\x12$\n\x06tensor\x18\x02 \x01(\x0b\x32\x14.node_service.Tensor\x12\x17\n\nrequest_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"/\n\x19GetInferenceResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"\\\n\x0fInferenceResult\x12)\n\x06tensor\x18\x01 \x01(\x0b\x32\x14.node_service.TensorH\x00\x88\x01\x01\x12\x13\n\x0bis_finished\x18\x02 \x01(\x08\x42\t\n\x07_tensor\";\n\x06Tensor\x12\x13\n\x0btensor_data\x18\x01 \x01(\x0c\x12\r\n\x05shape\x18\x02 \x03(\x05\x12\r\n\x05\x64type\x18\x03 \x01(\t\"<\n\x16\x43ollectTopologyRequest\x12\x0f\n\x07visited\x18\x01 \x03(\t\x12\x11\n\tmax_depth\x18\x02 \x01(\x05\"\x8e\x02\n\x08Topology\x12\x30\n\x05nodes\x18\x01 \x03(\x0b\x32!.node_service.Topology.NodesEntry\x12\x39\n\npeer_graph\x18\x02 \x03(\x0b\x32%.node_service.Topology.PeerGraphEntry\x1aN\n\nNodesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .node_service.DeviceCapabilities:\x02\x38\x01\x1a\x45\n\x0ePeerGraphEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.node_service.Peers:\x02\x38\x01\"\x19\n\x05Peers\x12\x10\n\x08peer_ids\x18\x01 \x03(\t\"7\n\x0b\x44\x65viceFlops\x12\x0c\n\x04\x66p32\x18\x01 \x01(\x02\x12\x0c\n\x04\x66p16\x18\x02 \x01(\x02\x12\x0c\n\x04int8\x18\x03 \x01(\x02\"k\n\x12\x44\x65viceCapabilities\x12\r\n\x05model\x18\x01 \x01(\t\x12\x0c\n\x04\x63hip\x18\x02 \x01(\t\x12\x0e\n\x06memory\x18\x03 \x01(\x05\x12(\n\x05\x66lops\x18\x04 \x01(\x0b\x32\x19.node_service.DeviceFlops\"L\n\x11SendResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0e\n\x06result\x18\x02 \x03(\x05\x12\x13\n\x0bis_finished\x18\x03 \x01(\x08\"=\n\x17SendOpaqueStatusRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\"\x14\n\x12HealthCheckRequest\")\n\x13HealthCheckResponse\x12\x12\n\nis_healthy\x18\x01 \x01(\x08\"\x07\n\x05\x45mpty2\xb4\x04\n\x0bNodeService\x12\x41\n\nSendPrompt\x12\x1b.node_service.PromptRequest\x1a\x14.node_service.Tensor\"\x00\x12\x41\n\nSendTensor\x12\x1b.node_service.TensorRequest\x1a\x14.node_service.Tensor\"\x00\x12^\n\x12GetInferenceResult\x12\'.node_service.GetInferenceResultRequest\x1a\x1d.node_service.InferenceResult\"\x00\x12Q\n\x0f\x43ollectTopology\x12$.node_service.CollectTopologyRequest\x1a\x16.node_service.Topology\"\x00\x12\x44\n\nSendResult\x12\x1f.node_service.SendResultRequest\x1a\x13.node_service.Empty\"\x00\x12P\n\x10SendOpaqueStatus\x12%.node_service.SendOpaqueStatusRequest\x1a\x13.node_service.Empty\"\x00\x12T\n\x0bHealthCheck\x12 .node_service.HealthCheckRequest\x1a!.node_service.HealthCheckResponse\"\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&exo/networking/grpc/node_service.proto\x12\x0cnode_service\"S\n\x05Shard\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x13\n\x0bstart_layer\x18\x02 \x01(\x05\x12\x11\n\tend_layer\x18\x03 \x01(\x05\x12\x10\n\x08n_layers\x18\x04 \x01(\x05\"k\n\rPromptRequest\x12\"\n\x05shard\x18\x01 \x01(\x0b\x32\x13.node_service.Shard\x12\x0e\n\x06prompt\x18\x02 \x01(\t\x12\x17\n\nrequest_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd1\x01\n\rTensorRequest\x12\"\n\x05shard\x18\x01 \x01(\x0b\x32\x13.node_service.Shard\x12$\n\x06tensor\x18\x02 \x01(\x0b\x32\x14.node_service.Tensor\x12\x17\n\nrequest_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12:\n\x0finference_state\x18\x04 \x01(\x0b\x32\x1c.node_service.InferenceStateH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x12\n\x10_inference_state\"/\n\x19GetInferenceResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"\\\n\x0fInferenceResult\x12)\n\x06tensor\x18\x01 \x01(\x0b\x32\x14.node_service.TensorH\x00\x88\x01\x01\x12\x13\n\x0bis_finished\x18\x02 \x01(\x08\x42\t\n\x07_tensor\";\n\x06Tensor\x12\x13\n\x0btensor_data\x18\x01 \x01(\x0c\x12\r\n\x05shape\x18\x02 \x03(\x05\x12\r\n\x05\x64type\x18\x03 \x01(\t\"3\n\nTensorList\x12%\n\x07tensors\x18\x01 \x03(\x0b\x32\x14.node_service.Tensor\"\xd2\x02\n\x0eInferenceState\x12\x41\n\x0btensor_data\x18\x01 \x03(\x0b\x32,.node_service.InferenceState.TensorDataEntry\x12J\n\x10tensor_list_data\x18\x02 \x03(\x0b\x32\x30.node_service.InferenceState.TensorListDataEntry\x12\x17\n\x0fother_data_json\x18\x03 \x01(\t\x1aG\n\x0fTensorDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.node_service.Tensor:\x02\x38\x01\x1aO\n\x13TensorListDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.node_service.TensorList:\x02\x38\x01\"<\n\x16\x43ollectTopologyRequest\x12\x0f\n\x07visited\x18\x01 \x03(\t\x12\x11\n\tmax_depth\x18\x02 \x01(\x05\"\x8e\x02\n\x08Topology\x12\x30\n\x05nodes\x18\x01 \x03(\x0b\x32!.node_service.Topology.NodesEntry\x12\x39\n\npeer_graph\x18\x02 \x03(\x0b\x32%.node_service.Topology.PeerGraphEntry\x1aN\n\nNodesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .node_service.DeviceCapabilities:\x02\x38\x01\x1a\x45\n\x0ePeerGraphEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.node_service.Peers:\x02\x38\x01\"\x19\n\x05Peers\x12\x10\n\x08peer_ids\x18\x01 \x03(\t\"7\n\x0b\x44\x65viceFlops\x12\x0c\n\x04\x66p32\x18\x01 \x01(\x02\x12\x0c\n\x04\x66p16\x18\x02 \x01(\x02\x12\x0c\n\x04int8\x18\x03 \x01(\x02\"k\n\x12\x44\x65viceCapabilities\x12\r\n\x05model\x18\x01 \x01(\t\x12\x0c\n\x04\x63hip\x18\x02 \x01(\t\x12\x0e\n\x06memory\x18\x03 \x01(\x05\x12(\n\x05\x66lops\x18\x04 \x01(\x0b\x32\x19.node_service.DeviceFlops\"\x82\x01\n\x11SendResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0e\n\x06result\x18\x02 \x03(\x05\x12)\n\x06tensor\x18\x03 \x01(\x0b\x32\x14.node_service.TensorH\x00\x88\x01\x01\x12\x13\n\x0bis_finished\x18\x04 \x01(\x08\x42\t\n\x07_tensor\"=\n\x17SendOpaqueStatusRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\"\x14\n\x12HealthCheckRequest\")\n\x13HealthCheckResponse\x12\x12\n\nis_healthy\x18\x01 \x01(\x08\"\x07\n\x05\x45mpty2\xb4\x04\n\x0bNodeService\x12\x41\n\nSendPrompt\x12\x1b.node_service.PromptRequest\x1a\x14.node_service.Tensor\"\x00\x12\x41\n\nSendTensor\x12\x1b.node_service.TensorRequest\x1a\x14.node_service.Tensor\"\x00\x12^\n\x12GetInferenceResult\x12\'.node_service.GetInferenceResultRequest\x1a\x1d.node_service.InferenceResult\"\x00\x12Q\n\x0f\x43ollectTopology\x12$.node_service.CollectTopologyRequest\x1a\x16.node_service.Topology\"\x00\x12\x44\n\nSendResult\x12\x1f.node_service.SendResultRequest\x1a\x13.node_service.Empty\"\x00\x12P\n\x10SendOpaqueStatus\x12%.node_service.SendOpaqueStatusRequest\x1a\x13.node_service.Empty\"\x00\x12T\n\x0bHealthCheck\x12 .node_service.HealthCheckRequest\x1a!.node_service.HealthCheckResponse\"\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'node_service_pb2', _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'exo.networking.grpc.node_service_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None + _globals['_INFERENCESTATE_TENSORDATAENTRY']._loaded_options = None + _globals['_INFERENCESTATE_TENSORDATAENTRY']._serialized_options = b'8\001' + _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._loaded_options = None + _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._serialized_options = b'8\001' _globals['_TOPOLOGY_NODESENTRY']._loaded_options = None _globals['_TOPOLOGY_NODESENTRY']._serialized_options = b'8\001' _globals['_TOPOLOGY_PEERGRAPHENTRY']._loaded_options = None _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_options = b'8\001' - _globals['_SHARD']._serialized_start=36 - _globals['_SHARD']._serialized_end=119 - _globals['_PROMPTREQUEST']._serialized_start=121 - _globals['_PROMPTREQUEST']._serialized_end=228 - _globals['_TENSORREQUEST']._serialized_start=231 - _globals['_TENSORREQUEST']._serialized_end=360 - _globals['_GETINFERENCERESULTREQUEST']._serialized_start=362 - _globals['_GETINFERENCERESULTREQUEST']._serialized_end=409 - _globals['_INFERENCERESULT']._serialized_start=411 - _globals['_INFERENCERESULT']._serialized_end=503 - _globals['_TENSOR']._serialized_start=505 - _globals['_TENSOR']._serialized_end=564 - _globals['_COLLECTTOPOLOGYREQUEST']._serialized_start=566 - _globals['_COLLECTTOPOLOGYREQUEST']._serialized_end=626 - _globals['_TOPOLOGY']._serialized_start=629 - _globals['_TOPOLOGY']._serialized_end=899 - _globals['_TOPOLOGY_NODESENTRY']._serialized_start=750 - _globals['_TOPOLOGY_NODESENTRY']._serialized_end=828 - _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_start=830 - _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_end=899 - _globals['_PEERS']._serialized_start=901 - _globals['_PEERS']._serialized_end=926 - _globals['_DEVICEFLOPS']._serialized_start=928 - _globals['_DEVICEFLOPS']._serialized_end=983 - _globals['_DEVICECAPABILITIES']._serialized_start=985 - _globals['_DEVICECAPABILITIES']._serialized_end=1092 - _globals['_SENDRESULTREQUEST']._serialized_start=1094 - _globals['_SENDRESULTREQUEST']._serialized_end=1170 - _globals['_SENDOPAQUESTATUSREQUEST']._serialized_start=1172 - _globals['_SENDOPAQUESTATUSREQUEST']._serialized_end=1233 - _globals['_HEALTHCHECKREQUEST']._serialized_start=1235 - _globals['_HEALTHCHECKREQUEST']._serialized_end=1255 - _globals['_HEALTHCHECKRESPONSE']._serialized_start=1257 - _globals['_HEALTHCHECKRESPONSE']._serialized_end=1298 - _globals['_EMPTY']._serialized_start=1300 - _globals['_EMPTY']._serialized_end=1307 - _globals['_NODESERVICE']._serialized_start=1310 - _globals['_NODESERVICE']._serialized_end=1874 + _globals['_SHARD']._serialized_start=56 + _globals['_SHARD']._serialized_end=139 + _globals['_PROMPTREQUEST']._serialized_start=141 + _globals['_PROMPTREQUEST']._serialized_end=248 + _globals['_TENSORREQUEST']._serialized_start=251 + _globals['_TENSORREQUEST']._serialized_end=460 + _globals['_GETINFERENCERESULTREQUEST']._serialized_start=462 + _globals['_GETINFERENCERESULTREQUEST']._serialized_end=509 + _globals['_INFERENCERESULT']._serialized_start=511 + _globals['_INFERENCERESULT']._serialized_end=603 + _globals['_TENSOR']._serialized_start=605 + _globals['_TENSOR']._serialized_end=664 + _globals['_TENSORLIST']._serialized_start=666 + _globals['_TENSORLIST']._serialized_end=717 + _globals['_INFERENCESTATE']._serialized_start=720 + _globals['_INFERENCESTATE']._serialized_end=1058 + _globals['_INFERENCESTATE_TENSORDATAENTRY']._serialized_start=906 + _globals['_INFERENCESTATE_TENSORDATAENTRY']._serialized_end=977 + _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._serialized_start=979 + _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._serialized_end=1058 + _globals['_COLLECTTOPOLOGYREQUEST']._serialized_start=1060 + _globals['_COLLECTTOPOLOGYREQUEST']._serialized_end=1120 + _globals['_TOPOLOGY']._serialized_start=1123 + _globals['_TOPOLOGY']._serialized_end=1393 + _globals['_TOPOLOGY_NODESENTRY']._serialized_start=1244 + _globals['_TOPOLOGY_NODESENTRY']._serialized_end=1322 + _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_start=1324 + _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_end=1393 + _globals['_PEERS']._serialized_start=1395 + _globals['_PEERS']._serialized_end=1420 + _globals['_DEVICEFLOPS']._serialized_start=1422 + _globals['_DEVICEFLOPS']._serialized_end=1477 + _globals['_DEVICECAPABILITIES']._serialized_start=1479 + _globals['_DEVICECAPABILITIES']._serialized_end=1586 + _globals['_SENDRESULTREQUEST']._serialized_start=1589 + _globals['_SENDRESULTREQUEST']._serialized_end=1719 + _globals['_SENDOPAQUESTATUSREQUEST']._serialized_start=1721 + _globals['_SENDOPAQUESTATUSREQUEST']._serialized_end=1782 + _globals['_HEALTHCHECKREQUEST']._serialized_start=1784 + _globals['_HEALTHCHECKREQUEST']._serialized_end=1804 + _globals['_HEALTHCHECKRESPONSE']._serialized_start=1806 + _globals['_HEALTHCHECKRESPONSE']._serialized_end=1847 + _globals['_EMPTY']._serialized_start=1849 + _globals['_EMPTY']._serialized_end=1856 + _globals['_NODESERVICE']._serialized_start=1859 + _globals['_NODESERVICE']._serialized_end=2423 # @@protoc_insertion_point(module_scope) diff --git a/exo/networking/grpc/node_service_pb2_grpc.py b/exo/networking/grpc/node_service_pb2_grpc.py index dd166ca9..aa8d8993 100644 --- a/exo/networking/grpc/node_service_pb2_grpc.py +++ b/exo/networking/grpc/node_service_pb2_grpc.py @@ -3,7 +3,7 @@ import grpc import warnings -from . import node_service_pb2 as node__service__pb2 +from exo.networking.grpc import node_service_pb2 as exo_dot_networking_dot_grpc_dot_node__service__pb2 GRPC_GENERATED_VERSION = '1.64.1' GRPC_VERSION = grpc.__version__ @@ -20,7 +20,7 @@ except ImportError: if _version_not_supported: warnings.warn( f'The grpc package installed is at version {GRPC_VERSION},' - + f' but the generated code in node_service_pb2_grpc.py depends on' + + f' but the generated code in exo/networking/grpc/node_service_pb2_grpc.py depends on' + f' grpcio>={GRPC_GENERATED_VERSION}.' + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' @@ -41,38 +41,38 @@ class NodeServiceStub(object): """ self.SendPrompt = channel.unary_unary( '/node_service.NodeService/SendPrompt', - request_serializer=node__service__pb2.PromptRequest.SerializeToString, - response_deserializer=node__service__pb2.Tensor.FromString, + request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.PromptRequest.SerializeToString, + response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.FromString, _registered_method=True) self.SendTensor = channel.unary_unary( '/node_service.NodeService/SendTensor', - request_serializer=node__service__pb2.TensorRequest.SerializeToString, - response_deserializer=node__service__pb2.Tensor.FromString, + request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.TensorRequest.SerializeToString, + response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.FromString, _registered_method=True) self.GetInferenceResult = channel.unary_unary( '/node_service.NodeService/GetInferenceResult', - request_serializer=node__service__pb2.GetInferenceResultRequest.SerializeToString, - response_deserializer=node__service__pb2.InferenceResult.FromString, + request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.GetInferenceResultRequest.SerializeToString, + response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.InferenceResult.FromString, _registered_method=True) self.CollectTopology = channel.unary_unary( '/node_service.NodeService/CollectTopology', - request_serializer=node__service__pb2.CollectTopologyRequest.SerializeToString, - response_deserializer=node__service__pb2.Topology.FromString, + request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.CollectTopologyRequest.SerializeToString, + response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Topology.FromString, _registered_method=True) self.SendResult = channel.unary_unary( '/node_service.NodeService/SendResult', - request_serializer=node__service__pb2.SendResultRequest.SerializeToString, - response_deserializer=node__service__pb2.Empty.FromString, + request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.SendResultRequest.SerializeToString, + response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.FromString, _registered_method=True) self.SendOpaqueStatus = channel.unary_unary( '/node_service.NodeService/SendOpaqueStatus', - request_serializer=node__service__pb2.SendOpaqueStatusRequest.SerializeToString, - response_deserializer=node__service__pb2.Empty.FromString, + request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.SendOpaqueStatusRequest.SerializeToString, + response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.FromString, _registered_method=True) self.HealthCheck = channel.unary_unary( '/node_service.NodeService/HealthCheck', - request_serializer=node__service__pb2.HealthCheckRequest.SerializeToString, - response_deserializer=node__service__pb2.HealthCheckResponse.FromString, + request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckRequest.SerializeToString, + response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckResponse.FromString, _registered_method=True) @@ -126,38 +126,38 @@ def add_NodeServiceServicer_to_server(servicer, server): rpc_method_handlers = { 'SendPrompt': grpc.unary_unary_rpc_method_handler( servicer.SendPrompt, - request_deserializer=node__service__pb2.PromptRequest.FromString, - response_serializer=node__service__pb2.Tensor.SerializeToString, + request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.PromptRequest.FromString, + response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.SerializeToString, ), 'SendTensor': grpc.unary_unary_rpc_method_handler( servicer.SendTensor, - request_deserializer=node__service__pb2.TensorRequest.FromString, - response_serializer=node__service__pb2.Tensor.SerializeToString, + request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.TensorRequest.FromString, + response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.SerializeToString, ), 'GetInferenceResult': grpc.unary_unary_rpc_method_handler( servicer.GetInferenceResult, - request_deserializer=node__service__pb2.GetInferenceResultRequest.FromString, - response_serializer=node__service__pb2.InferenceResult.SerializeToString, + request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.GetInferenceResultRequest.FromString, + response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.InferenceResult.SerializeToString, ), 'CollectTopology': grpc.unary_unary_rpc_method_handler( servicer.CollectTopology, - request_deserializer=node__service__pb2.CollectTopologyRequest.FromString, - response_serializer=node__service__pb2.Topology.SerializeToString, + request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.CollectTopologyRequest.FromString, + response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Topology.SerializeToString, ), 'SendResult': grpc.unary_unary_rpc_method_handler( servicer.SendResult, - request_deserializer=node__service__pb2.SendResultRequest.FromString, - response_serializer=node__service__pb2.Empty.SerializeToString, + request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.SendResultRequest.FromString, + response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.SerializeToString, ), 'SendOpaqueStatus': grpc.unary_unary_rpc_method_handler( servicer.SendOpaqueStatus, - request_deserializer=node__service__pb2.SendOpaqueStatusRequest.FromString, - response_serializer=node__service__pb2.Empty.SerializeToString, + request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.SendOpaqueStatusRequest.FromString, + response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.SerializeToString, ), 'HealthCheck': grpc.unary_unary_rpc_method_handler( servicer.HealthCheck, - request_deserializer=node__service__pb2.HealthCheckRequest.FromString, - response_serializer=node__service__pb2.HealthCheckResponse.SerializeToString, + request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckRequest.FromString, + response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckResponse.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( @@ -185,8 +185,8 @@ class NodeService(object): request, target, '/node_service.NodeService/SendPrompt', - node__service__pb2.PromptRequest.SerializeToString, - node__service__pb2.Tensor.FromString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.PromptRequest.SerializeToString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.FromString, options, channel_credentials, insecure, @@ -212,8 +212,8 @@ class NodeService(object): request, target, '/node_service.NodeService/SendTensor', - node__service__pb2.TensorRequest.SerializeToString, - node__service__pb2.Tensor.FromString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.TensorRequest.SerializeToString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.FromString, options, channel_credentials, insecure, @@ -239,8 +239,8 @@ class NodeService(object): request, target, '/node_service.NodeService/GetInferenceResult', - node__service__pb2.GetInferenceResultRequest.SerializeToString, - node__service__pb2.InferenceResult.FromString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.GetInferenceResultRequest.SerializeToString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.InferenceResult.FromString, options, channel_credentials, insecure, @@ -266,8 +266,8 @@ class NodeService(object): request, target, '/node_service.NodeService/CollectTopology', - node__service__pb2.CollectTopologyRequest.SerializeToString, - node__service__pb2.Topology.FromString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.CollectTopologyRequest.SerializeToString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.Topology.FromString, options, channel_credentials, insecure, @@ -293,8 +293,8 @@ class NodeService(object): request, target, '/node_service.NodeService/SendResult', - node__service__pb2.SendResultRequest.SerializeToString, - node__service__pb2.Empty.FromString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.SendResultRequest.SerializeToString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.FromString, options, channel_credentials, insecure, @@ -320,8 +320,8 @@ class NodeService(object): request, target, '/node_service.NodeService/SendOpaqueStatus', - node__service__pb2.SendOpaqueStatusRequest.SerializeToString, - node__service__pb2.Empty.FromString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.SendOpaqueStatusRequest.SerializeToString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.FromString, options, channel_credentials, insecure, @@ -347,8 +347,8 @@ class NodeService(object): request, target, '/node_service.NodeService/HealthCheck', - node__service__pb2.HealthCheckRequest.SerializeToString, - node__service__pb2.HealthCheckResponse.FromString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckRequest.SerializeToString, + exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckResponse.FromString, options, channel_credentials, insecure, diff --git a/exo/orchestration/standard_node.py b/exo/orchestration/standard_node.py index 17c84a5a..055d3fdb 100644 --- a/exo/orchestration/standard_node.py +++ b/exo/orchestration/standard_node.py @@ -111,41 +111,50 @@ class StandardNode(Node): shard, result: np.ndarray, request_id: Optional[str] = None, + inference_state: Optional[dict] = None, ): - if request_id not in self.buffered_token_output: - self.buffered_token_output[request_id] = ([], False) - - if request_id not in self.buffered_logits: - self.buffered_logits[request_id] = [] + if shard.model_id != 'stable-diffusion-2-1-base': + if request_id not in self.buffered_token_output: + self.buffered_token_output[request_id] = ([], False) + + if request_id not in self.buffered_logits: + self.buffered_logits[request_id] = [] - self.buffered_logits[request_id] += [i for i in np.reshape(result, (-1, 1, result.shape[-1]))] + self.buffered_logits[request_id] += [i for i in np.reshape(result, (-1, 1, result.shape[-1]))] + intermediate_result = self.buffered_token_output[request_id][0] - if shard.is_last_layer(): - result = await self.inference_engine.sample(result) + if shard.is_last_layer(): + result = await self.inference_engine.sample(result) + else: + intermediate_result, inference_state = self.handle_stable_diffusion(inference_state, result) await self.inference_engine.ensure_shard(shard) - is_finished = result.size == 1 and result.item() == self.inference_engine.tokenizer.eos_token_id or len(self.buffered_token_output[request_id][0]) >= self.max_generate_tokens - - asyncio.create_task(self.broadcast_result(request_id, self.buffered_token_output[request_id][0], is_finished)) # TODO: this is n^2 communication complexity - - if result.size == 1: # we got a new token out - self.buffered_token_output[request_id][0].append(result.item()) - self.trigger_on_token_callbacks(request_id, self.buffered_token_output[request_id][0], is_finished) + is_finished = inference_state.get('is_finished', False) if inference_state else (result.size == 1 and result.item() == self.inference_engine.tokenizer.eos_token_id) or len(self.buffered_token_output[request_id][0]) >= self.max_generate_tokens - if DEBUG >= 2: print(f"[{request_id}] result size: {result.size}, is finished: {is_finished}, buffered tokens: {len(self.buffered_token_output[request_id][0])}") - if is_finished: - self.buffered_token_output[request_id] = (self.buffered_token_output[request_id][0], True) + asyncio.create_task(self.broadcast_result(request_id, intermediate_result, is_finished)) # TODO: this is n^2 communication complexity + if shard.model_id != 'stable-diffusion-2-1-base': + if result.size == 1: # we got a new token out + self.buffered_token_output[request_id][0].append(result.item()) + self.trigger_on_token_callbacks(request_id, self.buffered_token_output[request_id][0], is_finished) else: - asyncio.create_task(self.forward_to_next_shard(shard, result, request_id)) + self.trigger_on_token_callbacks(request_id, intermediate_result, is_finished) - return np.array(self.buffered_token_output[request_id][0]) if len(self.buffered_token_output[request_id][0]) > 0 else None + if DEBUG >= 2: print(f"[{request_id}] result size: {result.size}, is finished: {is_finished}, buffered tokens: {len(intermediate_result)}") + if is_finished: + if shard.model_id != 'stable-diffusion-2-1-base': + self.buffered_token_output[request_id] = (self.buffered_token_output[request_id][0], True) + else: + asyncio.create_task(self.forward_to_next_shard(shard, result, request_id, inference_state)) + + return np.array(intermediate_result) if len(intermediate_result) > 0 else None async def process_prompt( self, base_shard: Shard, prompt: str, request_id: Optional[str] = None, + inference_state: Optional[dict] = {}, ) -> Optional[np.ndarray]: shard = self.get_current_shard(base_shard) asyncio.create_task( @@ -163,7 +172,7 @@ class StandardNode(Node): ) ) start_time = time.perf_counter_ns() - resp = await self._process_prompt(base_shard, prompt, request_id) + resp = await self._process_prompt(base_shard, prompt, request_id, inference_state) end_time = time.perf_counter_ns() elapsed_time_ns = end_time - start_time asyncio.create_task( @@ -184,19 +193,18 @@ class StandardNode(Node): ) return resp - async def _process_prompt(self, base_shard: Shard, prompt: str, request_id: Optional[str] = None) -> Optional[np.ndarray]: + async def _process_prompt(self, base_shard: Shard, prompt: str, request_id: Optional[str] = None, inference_state: Optional[dict] = None) -> Optional[np.ndarray]: if request_id is None: request_id = str(uuid.uuid4()) shard = self.get_current_shard(base_shard) - if DEBUG >= 2: print(f"[{request_id}] process prompt: {base_shard=} {shard=} {prompt=}") if shard.start_layer != 0: if DEBUG >= 2: print(f"[{request_id}] forwarding to next shard: {base_shard=} {shard=} {prompt=}") await self.forward_to_next_shard(shard, prompt, request_id) return None else: - result = await self.inference_engine.infer_prompt(request_id, shard, prompt) - ret = await self.process_result(shard, result, request_id) + result,inference_state = await self.inference_engine.infer_prompt(request_id, shard, prompt, inference_state) + ret = await self.process_result(shard, result, request_id, inference_state) return result async def process_tensor( @@ -204,6 +212,7 @@ class StandardNode(Node): base_shard: Shard, tensor: np.ndarray, request_id: Optional[str] = None, + inference_state: Optional[dict] = None, ) -> Optional[np.ndarray]: shard = self.get_current_shard(base_shard) asyncio.create_task( @@ -222,7 +231,7 @@ class StandardNode(Node): ) ) start_time = time.perf_counter_ns() - resp = await self._process_tensor(shard, tensor, request_id) + resp = await self._process_tensor(shard, tensor, request_id, inference_state) end_time = time.perf_counter_ns() elapsed_time_ns = end_time - start_time asyncio.create_task( @@ -247,6 +256,7 @@ class StandardNode(Node): base_shard: Shard, tensor: np.ndarray, request_id: Optional[str] = None, + inference_state: Optional[dict] = None, ) -> Optional[np.ndarray]: if request_id is None: request_id = str(uuid.uuid4()) @@ -254,8 +264,8 @@ class StandardNode(Node): if DEBUG >= 1: print(f"[{request_id}] process_tensor: {tensor.size=} {tensor.shape=}") try: - result = await self.inference_engine.infer_tensor(request_id, shard, tensor) - ret = await self.process_result(shard, result, request_id) + result, inference_state = await self.inference_engine.infer_tensor(request_id, shard, tensor, inference_state) + ret = await self.process_result(shard, result, request_id, inference_state) return ret except Exception as e: print(f"Error processing tensor for shard {shard}: {e}") @@ -267,6 +277,7 @@ class StandardNode(Node): base_shard: Shard, tensor_or_prompt: Union[np.ndarray, str], request_id: str, + inference_state: Optional[dict] = None, ) -> None: if not self.partitioning_strategy: if DEBUG >= 1: print("No partitioning strategy found. Skipping forward.") @@ -281,16 +292,16 @@ class StandardNode(Node): is_tensor = isinstance(tensor_or_prompt, np.ndarray) if target_id == self.id: if is_tensor: - await self.process_tensor(next_shard, tensor_or_prompt, request_id) + await self.process_tensor(next_shard, tensor_or_prompt, request_id, inference_state) else: - await self.process_prompt(next_shard, tensor_or_prompt, request_id) + await self.process_prompt(next_shard, tensor_or_prompt, request_id, inference_state) else: target_peer = next((p for p in self.peers if p.id() == target_id), None) if not target_peer: raise ValueError(f"Peer for {next_partition_index} not found") if is_tensor: if DEBUG >= 1: print(f"Sending tensor to {target_peer.id()}: {tensor_or_prompt}") - await target_peer.send_tensor(next_shard, tensor_or_prompt, request_id=request_id) + await target_peer.send_tensor(next_shard, tensor_or_prompt, inference_state, request_id=request_id) else: await target_peer.send_prompt(next_shard, tensor_or_prompt, request_id=request_id) @@ -461,3 +472,12 @@ class StandardNode(Node): @property def current_topology(self) -> Topology: return self.topology + + def handle_stable_diffusion(self, inference_state, result): + if inference_state['is_step_finished']: + inference_state['step']+=1 + progress = [inference_state['step'],inference_state['total_steps']] + intermediate_result = progress + if progress[0] == progress[1]: + intermediate_result = result + return intermediate_result, inference_state diff --git a/exo/tinychat/index.html b/exo/tinychat/index.html index 44fbb99b..898baef9 100644 --- a/exo/tinychat/index.html +++ b/exo/tinychat/index.html @@ -115,7 +115,15 @@ const div = document.createElement('div'); div.className = `message message-role-${role}`; try { - div.innerHTML = DOMPurify.sanitize(marked.parse(content)); + if (content.includes('![Generated Image]')) { + const imageUrl = content.match(/\((.*?)\)/)[1]; + const img = document.createElement('img'); + img.src = imageUrl; + img.alt = 'Generated Image'; + div.appendChild(img); + } else { + div.innerHTML = DOMPurify.sanitize(marked.parse(content)); + } } catch (e) { console.log(content); console.error(e); diff --git a/exo/tinychat/index.js b/exo/tinychat/index.js index f13bd93b..5e1fea9c 100644 --- a/exo/tinychat/index.js +++ b/exo/tinychat/index.js @@ -229,53 +229,105 @@ document.addEventListener("alpine:init", () => { }; } }); - const containsImage = apiMessages.some(msg => Array.isArray(msg.content) && msg.content.some(item => item.type === 'image_url')); - if (containsImage) { - // Map all messages with string content to object with type text - apiMessages = apiMessages.map(msg => { - if (typeof msg.content === 'string') { - return { - ...msg, - content: [ - { - type: "text", - text: msg.content - } - ] - }; - } - return msg; + + if (this.cstate.selectedModel === "stable-diffusion-2-1-base") { + // Send a request to the image generation endpoint + console.log(apiMessages[apiMessages.length - 1].content) + console.log(this.cstate.selectedModel) + console.log(this.endpoint) + const response = await fetch(`${this.endpoint}/image/generations`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + "model": 'stable-diffusion-2-1-base', + "prompt": apiMessages[apiMessages.length - 1].content, + }), }); - } - - - // start receiving server sent events - let gottenFirstChunk = false; - for await ( - const chunk of this.openaiChatCompletion(this.cstate.selectedModel, apiMessages) - ) { - if (!gottenFirstChunk) { - this.cstate.messages.push({ role: "assistant", content: "" }); - gottenFirstChunk = true; + + if (!response.ok) { + throw new Error("Failed to fetch"); } - - // add chunk to the last message - this.cstate.messages[this.cstate.messages.length - 1].content += chunk; - - // calculate performance tracking - tokens += 1; - this.total_tokens += 1; - if (start_time === 0) { - start_time = Date.now(); - this.time_till_first = start_time - prefill_start; - } else { - const diff = Date.now() - start_time; - if (diff > 0) { - this.tokens_per_second = tokens / (diff / 1000); + const reader = response.body.getReader(); + let done = false; + let gottenFirstChunk = false; + + while (!done) { + const { value, done: readerDone } = await reader.read(); + done = readerDone; + const decoder = new TextDecoder(); + + if (value) { + // Assume non-binary data (text) comes first + const chunk = decoder.decode(value, { stream: true }); + const parsed = JSON.parse(chunk); + console.log(parsed) + + if (parsed.progress) { + if (!gottenFirstChunk) { + this.cstate.messages.push({ role: "assistant", content: "" }); + gottenFirstChunk = true; + } + this.cstate.messages[this.cstate.messages.length - 1].content = parsed.progress; + } + else if (parsed.images) { + const imageUrl = parsed.images[0].url; + console.log(imageUrl) + this.cstate.messages[this.cstate.messages.length - 1].content = `![Generated Image](${imageUrl})`; + } } } } + + else{ + const containsImage = apiMessages.some(msg => Array.isArray(msg.content) && msg.content.some(item => item.type === 'image_url')); + if (containsImage) { + // Map all messages with string content to object with type text + apiMessages = apiMessages.map(msg => { + if (typeof msg.content === 'string') { + return { + ...msg, + content: [ + { + type: "text", + text: msg.content + } + ] + }; + } + return msg; + }); + } + console.log(apiMessages) + //start receiving server sent events + let gottenFirstChunk = false; + for await ( + const chunk of this.openaiChatCompletion(this.cstate.selectedModel, apiMessages) + ) { + if (!gottenFirstChunk) { + this.cstate.messages.push({ role: "assistant", content: "" }); + gottenFirstChunk = true; + } + + // add chunk to the last message + this.cstate.messages[this.cstate.messages.length - 1].content += chunk; + + // calculate performance tracking + tokens += 1; + this.total_tokens += 1; + if (start_time === 0) { + start_time = Date.now(); + this.time_till_first = start_time - prefill_start; + } else { + const diff = Date.now() - start_time; + if (diff > 0) { + this.tokens_per_second = tokens / (diff / 1000); + } + } + } + } // Clean the cstate before adding it to histories const cleanedCstate = JSON.parse(JSON.stringify(this.cstate)); cleanedCstate.messages = cleanedCstate.messages.map(msg => { From 38ee8151078d78bf7ad2cdb981155981a1589761 Mon Sep 17 00:00:00 2001 From: Alex Cheema Date: Wed, 20 Nov 2024 09:55:36 +0400 Subject: [PATCH 02/44] static images dir --- .gitignore | 2 ++ .../8014d04e-b85a-44a2-88a3-29091c42bff5.png | Bin 0 -> 416562 bytes exo/tinychat/images/README.md | 3 +++ 3 files changed, 5 insertions(+) create mode 100644 exo/tinychat/images/8014d04e-b85a-44a2-88a3-29091c42bff5.png create mode 100644 exo/tinychat/images/README.md diff --git a/.gitignore b/.gitignore index 93227e3c..bd583381 100644 --- a/.gitignore +++ b/.gitignore @@ -171,3 +171,5 @@ cython_debug/ **/*.xcodeproj/* .aider* + +./exo/tinychat/images/*.png \ No newline at end of file diff --git a/exo/tinychat/images/8014d04e-b85a-44a2-88a3-29091c42bff5.png b/exo/tinychat/images/8014d04e-b85a-44a2-88a3-29091c42bff5.png new file mode 100644 index 0000000000000000000000000000000000000000..8117046d509cdb1cdfd84627422a088a97ae1688 GIT binary patch literal 416562 zcmb@N=|5Ee|HjXZiLuYvQns0~Z`rfg(Ac*OvPIUhWlzX9G#E=+V-O)rWD8?WA)m60 zRJI6FjD5=%QeVIS;dkTQIOpd3@j9<_UC-+}NjFXPm>DiJ006*jppU@<02uav7ZiN{ z@C8~_3U1B{ks*wc-(&<5YBZ~OSen6NmHy8}YPc26(K4a?#oTCiBm$5)@*KQDy5 z4cnfIsFnGh=D+#P;Y#n)-+#V;9!_q*2_Bj9*d)K%&b@}WpR8S<2wCq4neFg%Xs!Ey zz5RFnVsz`<-%~Mr0h6=S6DV#F2*eHL-qMFY#?NmV>qGcKL>&KCITTG&MQK40u#9Rs zxI%se1_LyaY%xR_kZ%u>g|q1r3IsFt^qnnk^zER906hTB1Z4&K|2>AlxVgEH^JbF7 zftk2GN-AlV2@d}}3x{=Qz)}7*9eQx{@jo?`jV+9Re{BegV=L2bffkW zp|E*=7@C0B(x-0m12!oyB-p$r)l9b5w)$!u^5|VouY!pKlswxA4j%9)SUnT%)kUyb_#+DK|_mOphT#UCX@&Q`k9LX3I&hY z>v7~^4_Oygo*w4;@L{rkrExBjI`y-_I(JF;>w~jjOD#1JI~CK%{)0m9IdcV{FdE}k z3F^56mDmb9qgQB@s)kB2g6gG4TGN=ct9<@^c40yB$-9ToezD6TiY`SIzhpyUI$qdK#~PP!1KFAbcbHx;-V{rdVa zxW`1emT`q{D%_JwAwb)IA|LUkLX$qtf)K5G(EgAgR16eK@T6|_P%vMEzXO&bI1Jzt zwD;#eTq}9Q>=sH~TT_A2zy0;`zn{+@Y(5LW(jTfW``DV~Jx1TF0h_JiaITnp zHwFj642U{*cV<)d2X7k>Yrp_8jT+Oe>e{aHDsScSfIaL5P-lp^PK3WVAUE8U-%_C? zBrA2B#9ej75633w(X*#CyStxH_R(z*%Gd+;48K7X5lw;nc}uzA^j}m!(U^sWEh$1@ z^&sV#`IY{<=5=d~%AzCFY`!J3BE(nmjVo<8K<8p{qc7IvI`eallB$L1}u%1htca;wlh;B&i`FATUXt%?l!%uP&dFUQp5y9|2LAtlF=@ z(E{=A-zUOb1(V;j06_|aC~!mQlfm`1-qaT$Kiuu)_VHxu0u>GT8Ixav7lbsPQ~~BH zY?|T6gO8SeSA7t;K6NL8TIErHEqLjq$?S@9{pnvDe@8k+o3xVpc@WfzZyHPnRQEa2 z!2O$$W)M3JBq)og>xWp8`m)1X83B0F$kUg5pU+QgCf>;AOjT(PVY3WDYW6aKhbv%}$XWO4}CVE`M8_NJk+2^rc+CtuxBfXs9y zTteu>l@)l_hbcf0m{+59Q*C_CJ`5TRK;rMa;uvMH;O=I22m&X(=tO-lRNIP`WNRkN zVbKT#o34snD~?;A(zl`&<)Fg=msLP{j{>5l*yMKU+NHyRUT-d3-`(nR29)>u`D@ze z>8;PfjngG;g&W7+m$dMjpoxQKggNA(z)=2MWweC+c6GUM%&f_D#L#H`r!lw~%#u0D z=94kK9D*bc)c8bmSv?|3ZCjGF!O*S{+{fDI@_5v`Pk@_P)0eYH#>a>$V< zIPxfk-Bw)_U?OJ2+X=oz301%NW<53*;+ImT3gl{ox|FTZLW?kG;O_e662eXI&FL;W z3`qjjC@Xl-@&KX$M=5lu?~0{)bB5l4;ltKa*=+wb}J%Lis?3=9OXzLY>C$F7!esB65H?!X9V zQy?%}Y!~L~h|P3TmrFNNXRHWB*`f5?WZP5>H-sn)CtP4du(83|FtFzyd8|Z;zJB`? z7%{!t9qCfB_&MUDbH*V)w`OG_0M>(AI`Tv>-w|*oHaT^HJmya${*C#e%;ovWbSZ+ zr$ftsPfJH3NJ)=_c18DPHhs_Rg83O42eg;*=QbHRf`dy9LCz&y6!7(^pSQjr~dWE+$P=NdLlfufp2LtRDS@*%9u zJkmrc2x5*|9IU*%8H+$cpLe=k%?FJ2jk_dW?#~rZBjRAQkDw%368LVl4!PhGqac%F z3AEs{JkY^$e;r~BwY8;jYD*#}vJ0}YX>T*abL|iSXqMt?xq|Vm+qyD!LolH9axAes z4(_*x24ENh1i?KI=tGG&89+}b-r(WohGESioF#bZksYMlq!Y>>c%QJ|NC&`oiO_m0 z4KNajRpk)|;x-h3xI7{pNqiqH07CIP&D#)?46NQgijN-{M!t1lAQEC=G=eiVlXg%8 zt363KZG|+zrGGAk)cfwnW>{1Y9WA20Gm$;m-^U$PA)6R*WyU@iWl@;Z0z+{oLxbzj zwJ6+*tS4HA`VTqb4u^}}SKj2K7Zlrmp7`(v1`X!GZ#^b%!JYBxFep2_O)-0EJ{?Jx zJ@A?rp*UPc@5P~4{><#`4H{4{6497sN~~$Uf|~ck;Y3jFjxd1cvi_W zSvC;k_6`bl*1~|Cy+I4qQN{S!>iEP&g}}b6%n3fMQ$Nf^VUDLC$i1g6W-tjkbE)s5tywiCbolH{mDT+~UDXi?;kSBd;#zmv8#f`T@G?T)W^+-B8; zuT13RadUpMw0G@!Q8Hu#Vq%7@bv^gVLq>))$p$FEJQy2HIXjhHsy=?D2r@C}>32I+ z4#JpTwc>R8Ix<~5gJxvGL&HO9NUJ$&x-r^~HH`Gmy$G%?T4+}&fWd4g zK)1}RN#S8OHb1(n8GzoPpdgLm;My$j&`{q(qK!(%*SSuP-3I8*%|4-Ccn0x&PpbO9 z%pk#Kfo4gR$!PO;8G?S_dLw0T@$q`}oyw%9%Da3pQn>8|HsyXuC>~0Oii1M>C927f ziBio{KJWnnwv4)bJrp=UpF>w@Q?rLFlt$<%VB7fVIP#)aaZL|ABdPH$h%7(8BWrVTW1@l@iB#`lMLg2gYJ8q%fK2eUUFWXKo@sAU2Q(*V!}+qT+5 z`sSBs8NYAJ{9TaI zq-;@${Zy6(Oc`#$JQ2ABGvE-coOd4fLo*4Z07F98KYU%B?Kar;bAHXJ4H)WL-G6@fR#|Re?zplVa);w9+ z(Z)`S0Goolh{8zPGpF44k z*(9c_hymOA-?g;!fS%rgID`w@bJ9*y&f6M=wL%Ssno_!yy8j5Uxy%tX*feSmO!eu} zUfY=LbRRzuYQ}!#XvBD{XeOzEPP=V+D~Dp}^51d!{zQ59oSpaun7ut~1x?6atsnt? zX4@uIFn zZdFHt>iu;)!_PP&Vt5BV4?yF3qg!GR0~Pb(@+_m=q&Kp8#_0Vu=_RePe#6>8v<&;D z2RAM>fWJP#$O04$+L)|HN|d`5dh;QW*%&OeDE~|~Vs|U|^-6jD`8#2B=eYXx@#Bvp zd(M!$A%+#IGe2G|p7f$N8MI|s&eU(t9V=}-Tp`gV2^Y}~3<_%ewuve|xRs1xdQkUr zqRP`c!zI5{R9NlYs`z61QP8gsTyffK(;o~2MhtngYIZ*BF6S0FctM1M82Rz~7=BZ{ z(7A>a|Bt;+?zz;wAgSFa5kSc+u?_OwB1CNWW-fwLJgxgSYQ=rN_9-MKrGvXE&7tBt z7)4elUNZ=C>D#>!p&D|>X`@s~H4K2*F6XJ!hC$ffeZD-P(?>t+kO0y4iO1v-iZEv!=}T{u5qt8K*W_7j^ho;P3rWL^k*ljaMav~nL{Go2P!Sg{;N~W!F;;-2ag&gXMWV?xV7Njs;iwKS zhgJyH9`wCm{e-YLFN7lh-HTbDyBO(&wjPubzfH2=w(Z@YBTdZ^gogxzWl-r|@l{m< ze0;aHGYAr;0R8ZQ9aCZGN@9I0(;=%HGn_H#kO> zR^d1&BI?Q1kv4U9xB>(qR4@H4crA<&N^+sn8!YWf_0}rkSdM1iG_CYMSZj`<1fwQz zi${}0kX;>s2_6?b5Dr?*g6H^`uHe; zI5B~7bC?XzpS?jCPfe<{^Pg#x8>i2+zf+#wQYRH>TTE|`fNxD+0H`Po9NHgvc0$$@ zi1@vJ=TGkw$+X*NAD<5$3_aMRN?j>Fw?g9~O91+sm#*bK-{7jPmr$z`!=T-kCXb4D zdwPkT#}vNMxxn2&#}C`buv=~S?4N|U77*PwyFQMRc|ItQAEm4{e*L>R*kt|gbYPfg z#PMy=YyLZ(L1%-zK}*y}{|)D>efrWfQz59;H^&1{;y_(JnxMel^B+;=3)}Zga~)sr ze2LiV+WxUA6FxO`=RHbnhJyEWP=8=tZl{bQ0xtJiLoF=C!Leu-mXQ3Mv)&6gXUD7fKZ4N7lsJn>?X(!VPV&jYRTb6_Uqw7$kM6{+J0x4 z6)N?Xq1Cuua^g!n@t^Z|yA(bvnpEqiPDsZljs?l4bc(#X>qqG8wG~O`KoiHBU~S>@ z*|478A{Uw?wehdbC&41x)|Io!%NcEc+0?03pyrTpn^CXe7z9`FnaL4{w|Zw z`Q$Wgg3|cnSAeyQg#ncpU`rOl0Zt+obO7tiaxfa>*=PvGJT)fg8Hxk0$~^WA_`{+^ ziy+S9R#%VU(YZ>mK`JL;Zx3n^dE#E-kcCVuVGl~_|AFYevlF|U_HX?8N)B^PHP@Bc zqU~!T=KRl_`0oJcqJ6KUuBsHo>pw<8Jx$7J9RDTtb&u1ST}WEL?TRFdE%-{!?d)(L z%-0$E&lK##jEF1joe_TV*-SL}{7&0zw4jXZSv-DzZ`$R1`D9gTOl#pNwoGpsvixpz z462+!hlVMzwNYTiV?UE0pU>NKDLTTPT>8 zLV-cU?C+2YFU#F(zel_*$N7GV7`Y+&Ow{6~MabTqI=q915$Uqsm7S@?0_UoNXKbsU z&X7X_^eUt(e%WYhF8>;)Lx%w_TO1W4D9~p+nO^$8uQ);_v0xWlE_e<$$txzZm#A^k zg^dsrbCx9fEbMnleas%?vySl1jDnGCKhK07RIUIb^YfpFYvN&C={KeHHzFrDJsck_ zms@wOxnK0}{7Lo?8=eY(bGoH|#qo8(*2X2FIX?aizs?8aN-qm0ZcZ&J3=+1c*l#CE zm~YrR68(@uSA95SrV-+*8ckh$B6{WeS@%QMYx{-U8V4KW9|Zn=d?PbymQ!aUJt&l- zhJwA~D4EZy*dmnEQuf+|J!IyhMqWC`tk&herH1%FWgXGa>uj%jV4abSF>bt*6P^#N z>g-ULH?^=m((GXleMtsuE7Mr#WEMo^?8P=*F_O-Lw$sVMKkp9z3|FQ}O+flw(B7y{ zKcmw)%Jsf)H(m~dU$tU|R~_0(qOWkv?e*Cii9dHjvB87aePqaO5&ph&o1|6haDiT; zo{xP7F)4Ty()~&XEgM+mK|!IW-Ynq7y$HdAw$2+HCw_nCN9H;#awW&dzfI|@xhZH&(w?#IIflVvIAxM{(K0V zzG0|%<^uY5PB{^lVk=-3V_o_xE8P1U{hqT>-`ECIEIU3A$;Q~~E=^wCF07oI={(#) z_hJpVtohLd4DVL8o%evF2qPSdu8{H#4iztVbMUMtV0sDJzA%L6WO$KA94ulRXI`O= z9-fwY{fXwMNA&JOFERU$!qSI=wdNKj6hRo#sC1td2kEY}D|a(DBT&BB>lur4e`<4A z!x*Cb%DQL}2m&3WLZG!U1|Ha&&4kQo;Roo)ax zbdo4{3#0=bn?l8RJ8GjqF0oLH;GI9v8#hg|{}`$ep{RYbARNvnhzKE%1(h^#Xnol6 ztQJx<%Q_mTN1iNw5ICN;zJB_sK6>k9X?y==F1;z5$J13x>a~;uca2Y>h^2ayde}f= z=uE_s=J(Sa<=Yw&-wGW6c~is2eeS$sRf|}SwC9A|K*SsW824P&vQc((K{@cCbX8mf z;L3@BgbTGxJgDRW0n+kaRET-ugR*~(Lxj&!%-;H))Awg-*LM4|%rsB_lZjsXT=}fS znSt_BRoRu<62a&@-U<&~iy9vr#y~PCcLDV-QI)5sRn;b=V-rt^W&OLmyBZ@? zpqKXdcW_%R3}3zZ2aB>hiSc%?Z(EMLO;-q8D$L-Wj3!kY$rqV->)-?ztX#p8=%dzzrQ)E z2txZvvY96f?h#!QHko{U1d$@3ey*&n&o$)39L$9aXt-A2T{=Oup}B=M9pTRJXRo_y zehQp@dCoo1pb9^jD@z@f0*mk(QON-nJj#^Y)+3sZxH_(@Zlg0+Z zRTL82$JqGSJ4E!Dp}^;YpdTj2@C=>UJSw|YG6bW-6hc>85SaOAq1}`1>%f1TxblgO zy0K;sFCQ5ln=qP4WbR#lr#_9}a`2;mJ>iJ#F~e$ae%jv5K?i=r0!x#!06=rbGDGYr zV^K)QZA_-!6x6t@4WWMCW*_b8Sr~|B&A80ET`Ty*QiPGFbO(=SU6O!~P2M8F22gE= z_Vw3)eQFhW^G}jBYDvND`Y+kO=-E3oJ{I)*2&g{>rPYhp+gtE)Jg9E%+9Dryttt6G z81nJI9M!%KBbg^$*xcQpQ+j6>V{QhoSd=bghw>$$+m+0*f^&?{q?x!^Fr+0V}z zE|6&Ix^fL=2=d9VQ6!&SxPox5t2XZiaF)J1*chnZhtIZ)*^ zY+0*g@;xh{*w>cjVYXhrGzwL4PEtRxLxUjMcC?y|m6oajY>Dt%GS;Wp{5ZYB=wX=W zCs47z`6k@UNgn<&^8zsYE9u4Yd}2g3o0SqMKtX0eElf5mzumS<*x5?NP}H!IuP+re zs~GvUBJ;C2*5%s?NLheQ`;e}p8rM5xCs~dw=b@h_p|G_|uVOVYNmC|1g{a2XoSAxW zX#=dh=%^`XwJLdo2Q}i2uko7<;iN*cCqga|?J74o*>+768jr38h_agf=wr`jH+r4% z-)uPt)5`R@aL&ZlB`JMcF8DZebpS^d)L~T;$(-%1{T}W06qHQL6Z>{`bB%u0W=Z zV8w);#3m+_Ht~-`xI{xkdt#;OMf>&VNmm7_HHgM$uUdMe`!&ZVivx)e})FB!#l~f)=vPko}$G2@3sLqf|@!zbIyEh-UanQlh}g;l(#6RoB~hH?m$i zj%F3mvEyITd0H^m>WGwdUMY%L=ehGQ!TQaXgMZl2OUL8n&aKxFvAy``(XaKG(C^U@ zR)s6CH>_Qlx^G?pL|6bJHXLTdXS>!c*xlJzQ%WBOwD&)7WnGl#ba{;4)QTgz@z29S zxW^a@bfG`KEv{WDi$27`Z|3#il~Dee->>wp?dFX{Zhkw8SuHra(-j{1W1*V`?_~2* zJ-fr6Yv}=|b8q>h!-KtVZ;#xM-W-2azr#zgset|pP;mNzN`DECw|bI9YOj5C4&)hq ztVN!#&753@WsTJ_q(cK%yM*`I7W$rB69crdO_-dZOR|BDjqPI*lZ%y>qbZ5!3yKi0 z-}hp6>|S+NzDTJ22`6MTpEIFzWN*gq+lh5kq%jPhs3>O=KdSib>C+ABCHl^_)r2>( zQ+UAk_TgNfa1WQ264{QCvC`(%7#J9eMpj@Y08;*O`c)H)3wVouwV^>1O&uEDbxjmQ zN_6cJY_(oo3j=b5;$Re>6>CCOee&5UH5oRBd3jP{z*#cXb z`yedvBBf}wr?N}XNK-(76vbBf9?&nZcyM8$uV!7M>Z&f7V3(42Lj@JGX;Ik1@G#RS zkf$%&Z~KNk1E|6L2jJ^qLA+aW{okkzZ>9@jg9SjTyBkR}mv75G^5=l3Ke`^MW`cb; z+1ZxgYaBvPvpoM$jR8H8HW~3G^M`m(cvLo)D+9 z00lF!5HA-7qFf*HOIE?v1@o)H61DhH6q~6w_+0FByCoNZ-sVe6Xwn43SiR-;CO9rs z+D%5$h_tG_IH!$2S3QbOsFT-^Ye%B?Pb^puvLu}(*$t4L?Ln9TVS>89`cZ=Q+rNp? zJEz|dJ0@q2)+YJ+i!@)Tqv<9Cps4}M>%=&aQxRo304peu)ZQ=el*k1WS9zPEsrV9O zSGL<})|gKdB!dbD?Ygg%SK`+fKtSJ*fv+I2746XyjFAQGfWTDq#x9HK+A31t6lwGyROJZ1cPwH%PI%IEN3%Ed-{7jra;i7TsyWk zv&&K$j?jMa_uENC1B{JH(*_N9P!&`^r){jUPFk`WkH#ChNfO4!nQv(8Q}s1UTXtc4F{uGRiS42a^@ODbl=@xlDNQY zOU`%QWEFU=-CCoRd(#|jAsybCiwf897|K+Uch`S-iB>JOEnedRNUM#sdbn#b^CVi+ z817v6@lRKE4pK%3Gpv<4@xzX>8fRm0bdxNv(6rKcyYtU)8rH~T$!BMMOCR2}UpsBa zNODl3g9D51EA+)Td2DwbS$#i!ul#4_=*=FvK796bUND_HScrK(fD2#4tjWNRNav8X zd3Bj1279>HJ>$c^$+)@L8we>d@%K!*Mui9J7llueo z39f-JWb|r9*JPo;lnpyLbY{w8#*#qoc}C?2i@)CwuUq@wK3nv-wzn!1`PcQ?zh6H` z9NQx|36<3qw2sLbm0gy_n=Bu{2X7aA|GOm+y{lQz;`G9Ta6>E*Ddk+}Ed_&6-=p!M zb4GCi=f74LQf=%~;bUJ}#TK~rklq~i=rJ#>>0iT+o#8f(#Uo;fgLmz*6E#@T<`ak9 z3F1$)&*0*i2F3Pw^B?(OZMO=DFPq(frm}s`viT<>VS+q%d11Z7bTm7_57OUoZE-}! z$BRw>a@jXI+?hU9{0kj0#9w5y?{qC8 zfxkJFjcc*4Ys`CABUPu!A~#&f{tC8n!wB6bExp=|xkVz8u^5!~tkzE_89<)*wuJa^AGc_J5n=%&p)z!^0 zOnd#@<@nGrm3%po=%xG_`Fk?t`1PC&#T+ALowNW;3z1~v%rqYFbT_`epfjS@-PgBT zDb(yJV5iCy+E(YY)=E5H{2i8G87Pw0FHYgRDw$DN*veJanj>jHYZ)OOvV)tB|8E8+ ztGpz%-snEy?fG;Z@XP7;(RP#*%X3^`^a}?+g1{k|wXTa9HAO{f{=F5G(`|uHI4jqR zxdQ#&9ZIWVj*S1$`4iLd{9&E*uY&=;ClFqm4=>HmG@P5W%cs)b>kNEotGHB^^XTJh z)`qxJEO)O9Mq&7L6&B^Yr*TxWAyP5=hc^|k5z6jh{50Fv&K?w~ylI*f75!hxTzLUy zoY2nU=*OQsdl%qt+49%;)t!6otmNNqWqtC7TfJC_$||c8A_CC3Cfnr#nJD%7Shp zRW$DT;~TRS5?vsa9dUmgT8}*(GAP7Bg?cBZHO8|? zMBmTa6|7|szEebswljmuxfHf*1D#s|ruSMQOidDxjfF6V=>^1Rqw04PXr@#9Qa3UP zm)MzO(A(1BMv$;e82=Y_w`BO%dm-<9BSk4zHeQ{(LJZsL#urH?^jG4vpepun>~+Q-jrqK*oWmy7T%hw zs#Rp1dC_g0xbVPiHsB^Fjh(5juQer?4}R~eHA$AWP;uM8QL1t&qqpzWec+9>hMm80 zW@$Z9thejnSxiaU(e>jedfHK+Zb7<^B;rYvA+_bW;m1%vxtpfFbzL_zdTpz7v4^J@ zVBX^GAYm_8-1Drj`=1S(i!yoNs2Und4>hu3X}y-TB(y;)4OO*|9t}&!7Id?CaVs?? ze5otfHyqo0*5*+nH{GhiY-)S9@d8^_SkDSn(kD!@7gSZ{*tJfmklHM5Cq*cfr>VDb z&zdI;rP~EPF68DI1s7C!xxP*DS2T99okG_7){=2@@-Mcb`dW@$j0J#ltyQ_9OCjnm zKfRby#dp#Y$jV1kb*hpsi)ePyXU(JIvO=w|riP04`?G;KeTkL6bQXQP-6x|o%y?Z{=GJ5k&1O&32F zX%a%1@lGqX7wKI?j%Z--g}Q zUfg70h`+ygWsd^}n;uJ#^gZboO#8Fyas7ZU=1t`%14_H$XBIB?gj699D!~q#82zk~2_jj4;6PRI@sOX3CyT}U! zuX}vzciV_=j-KldBnty`L$CGf>UQaTyCN}hH#5hUP`*sK5Io+_ zM`AT(g`V!V#+u6!QU7`liw{(&dMbhrZ)cPoFJI^-BzU(sXSpcbBrd}^`tlh?N`s_2 zzDXo~tnK}xWS(2v^{nOB)gX3R$^WWMyF$xG73mw8FB#$0MlT_Pxqc;?{*vh)KJVu! zH|Y>MiEcHfTOkGfNi>M~3jORS(SwoBVpsVxa@=FW0#u4!k0$J-*-4?T(c zy=C^HUz?HqihSK%f3<$n?~Y0R)-Wr$B8AdO+uyf_1$slWst5RAW=}sD3QD@FaR0sH zLV~NvN#A)^4P#5WE4+|S|AT1x$|67}P@AZ4o!#-dfkZk5Sbg|#r2(Q`-TJQp1y)Zh zQpQ6dZ~99G3diT^J$;{Ue1gi)Z7y;BVB`6-fBSlGj;F47oP0g=ltii7ZA9o~&*oWw z-%EbG|8D!VC-m)hNPWlAkEtZm?7$JDtCO=BC#CzI?Sz^cgk<*IN2R!xHXe$>@4E?O z)E!+9)W%`G?;K`sBY5eHZ`p9>Cb@`O8u+-+ zpF+F{1hLyw?0HWa(WJcWWYEO;=isTac07Q-_vp4K)t~JVs5~Ii`;i30d-zdM`bNK%6UF+;|@=q!Z#vyOLoseMJqBcOz zZoE4Dv&YgXW6oZ}o-J!&nMh>olqoN}^3J#^!$fJ`=4v%Pr%?O?PUZ51n?csqJxpre ze>2#+%kYruV-=6YLZ-;e^*>afT!lH83S7&KPSuAAn!KqMrVN=xh+hD__LzhZOeo@@ zL8-5Hl0cbEER^Pp?_Z6ATn>R!sg+ujJr>!S*R|`4W&_4$*@%!#gBulv+V&%jtgUfa zOrw#&QIFsrA6vaqx2k$H#?V*OmsQE%^fX&lhv0oNN72SD&87M|&g2=vwnMUU$Jj>}VFQW0JJy>KBS}-Ln@NYk;Qc49byMEb=*ZifDe@(@bq+9@ClfwyL4*wW=S=nT6 zeK~q9o}c^eZ$OZKbRZh3?QE*TcGcgAU?2Kpp-I4zbC8+>2*%&ZlgOH`Ow9-!X$Tyt z4Q9^+!IwAZ9FvP4PM)s3ZPcdIh++i_-Xe#;NJn|gE`G%$zBN`D+kVds&WzTdkaWLV zDN67Y@B4XO_s3kb?T);mmg>k3aX6~h&%D|#Cj#sj?j-c=J*Cpbs^xgKL$cg0ih%d3 z9zPxu3o%_+O!^ znUafLPDoK@ohC0V_Dh2|*SW=Za|{WY^s0XIcK1{3+jCTNc9!_&kC%G;tyj;Fs6@-q z#rlrZB7uLeo`wBmeZ3qpw{Iu@ADR7LO)vz1U*sNn&X^z$rx#}_rlvk-_Pj=%`>d{_ zEvmBGb%5oLbJ9#u>xo>MJo>6MqtC5qtj<-T7GK=7)5D^MCU}1W3DV^kTxf)cHFJtD z1wwIX$YUp9xTKTDTpE~PQ51ygusRg*QdA6@Y1bU_5^aeW2C~0jP}&5^3JecLmxs4X z4duT5{a;%23H!g3?|t+d_TX;g2#~ zvo%;$GbT-L2vfolOPwyI6A{T(C_G`h5qH%9eERTYDK!f*er;S0qq$WX6b^N(sLN0E ztiIwJ09MWDiT-;&;Qtn_`3C@XZsYCri{-2<*_R#yhX0wjRpnq^#J;huvr=MEPrVt| z^QC5}KV2AIq|DaPCm!IM?W`j}653X7{Q?q_XiEDFOO`biHyz_gMHRi9`zxi`2W1zTx znlCCb`S8L1&+Vwme=BD(yL|pJ%kA&vg9BYQBeb);e)+*n;cpIcSGOzP+ki`);n$^kIBvZ(gRXX8I#zLJ`{ zy!M#eQEWj@i|%SnV2c*~-4%sYW7X{giSUT%lXV zF>ttY{n)-f(wXl4^}my>_7?aT^>mu;h5|eO&^$Sm6^3s zc{myP8(udgQC^09lkKevNa~ha29=0&Zgb&oL1te)d`>F4^Yt> z0ao((@SI*WZf@dd7B=NP>U;f+mjbbzF(4v%IS{?f`cT62VnIl$v0E2S8)uGqEB$gi zI4rEKA-~fO*}sx7RY{SSxf01{zWd`Ph{9K$@ayTgX=# zBZJ#RntPH);#E(uO1vSc3N^7!3l#}}?&@WzwiGsia!jOwB~RJH%i-Q#Eu{ z@nDXQsFqNsb#m~9zJM?Ds{4Z5>fQyjdLiJ;h!2izdHJ{~LD1K^(A%U!Uba`4XyHci zTqoKnk9?rU9tn8{bJ(DktCEsUZX!^ajfHn#Rz80FnLxCiH?=USeOqvz`F7I&4tC}u zqcLiynLy|shurCVbX$A=IRv5&0$!Bkj&h_vTl(P6TPE*MMK5oss|qf$e}-Sy<{{4C zy$K_^+fM$8lmAwAL|wxUjhqcf{G|jhbiOYTEil8^hKgs}K5U@j}_#eYKd8y8!@y4x*!#%L-90(>esN8UpIO?>soTpu3 zr&)T$0x!RXGvDND$t%~pZOsIOHa+!NFm`jHe*JRB_F8_31>cy$#JZW__20$7CP;O1 z_89KzeeSAwlXN(8Y3*_BZ8sy^d5#XDRJ1BS&AT^uC1d2q`_d{2Ov1pq!AR2I+L-se z`orwYPYE6`xx1nC@p+GGZkFwEw+mKqNMW(ETwCH{W^`I`RYxwczT-WINqMtAVG1Rx zXehdCmn`#d)#KW)Z)VqjkMkX*a~g+)Kwj@XR{vWl@b}fTlkT*)f9I?xOq2lv zPa}q56cR$hlIJF~LatS#A$Fx9b?m|Bo9odsQn6gc_~MG&ZlQ`FT>S3IzJk3yW3KPq zEQZD{Bru0Lb;{ zze32_i#_b-7Shw{GtPBK{+Re?DaxiB9BS?0Q){2uvh=Res)yvZdRr9zN%~@rvVV;D z6S1ya35xty;@RYj3>Eg^^nT4eh0RAqg?(iFzuOp_=??kIf!v_7%me3dA8jZcg{@>H zK3kh0F4x?ks3R=#^agBghbf`cWR#%z3#KrIQWhZUd(`C*k1_#Vm*Jxt;wxTA?xH5v zKg~~*0Z4Xc=~sA%dmV$06>2Q`9q{$7sDa$HLhEBHxS#f z%@4ilJ-eN&m`m-i?fW2jMp%Ue9YHzd1=*ZhUXENlD<6seJu2{b^QWl5TnW1;fqhSF zN%_sm!Syrie_gD9R?-R!zfNdo64Z-x4e;D?#YX`aj2V|MZBR{c1TQ-Lr^)C>y3Iw5 zd*fU=Kq|D!8? z#CH}LbAleiUxqzG2gqvceW*Z7l|-pYo!J~ag`S-}`hNV7_3zsDpNYhOi%kbRE2|!L zUwSmQKZbq!uhVh&jlju}O#2aY-?rd+_M{Zzjkc+P z*VP`rK6#3Jw?BRCwlWll&qX|=+S<21wY@p`;yQx%S?>BHd7~H-ArtknYu$3eA(?Pv zk_A5XA1#5I&j~_!IuQu~>HGHURlvTTp?@I(_CY0C$cSyyL^ai(>Wz`MqC+VX;>3UQ zn!6IC3XGrpS6-RBLA)M#-gZxRfaRz5~>e>ESLd~}qN$`T~Pex9t zXyN0uxu(xvYR$ho9*u+WV;@n)5%*O&GH`$U%oWFrYL8~>ZQa^D1yQ%lYKG*usR1`f z72k_W<=`W$+Y{omii|wd`kCY;${+mhXol~CcNnjqfmKsuP9)QOwxJmvj0-BvSK~}FRj!)R3D#MH2+s!me+3nXus%16S8FqMYkpg1agf4}o zr-VdSZ52uT{LZ$e4D5&RprB4sm@Nb|^#cVmye4SL{#KI>m=loV>9 z!S@*~qP~9*<*fvcKdV-rGkI8X;dA8W*@W`LMYro3l76e&YMj~t z#xBfQnqACd{|U1Re1PX`#It49ONFRXH6h;Gqtr{fWgL8u+euqK_6n(eG|lThbzzv$ zp;ejlfuGmA{+s9f?-{+QcDu+Ya9F}QJv^&o{nJMmy)W~c`lP;)-kcNG)<9-)!uHcp zO1Kz;i|>MZ4;e*m<^kh*uJz>i{LmG*Ey+(?sHZR~C!fA#7nYYdT-#nHp7B#J0ShNq zFQ68&WF32Eu=r~kel0S=>qYxJOVLmcrtV92jGJKrv=#Jqvw)y}>+mtnv*gn8CUEct z94zi3_{Gg0gQQCnEW~+`wk%@+zHXl1xb0=#T*S*n_KmjA9NU}%(E}$c)@s} z8`CKqJT#KxI_wMRUo*cSQN~`9E9@nuq0U7y_J&>OEp9~`mFSC1cd$B3 z(DaV{eRR=t<}~k4BsY@K@DeVlOT}VP5?vu|{EBx8iK4`-SNoRDr&J3%WD7dm%a^pq z<#FB;oCv#Z0?9y0P>UkP$bg|}s_~@klx&;MIyQcoI&#aEg(-|@ym00R$k`M2*K}m# zD$9;q=&$NN4vc0_@8SL?>G1~qquAHwe*msPQNN2WNOed02PqX4iC;nFtxp?ZHb6ci zPKReAA8gDaOWV|YM9^+56d6loIsFL$A*sBC=~DhR!Ug~V02#9@GIL?d0qi1@%`XzR zbw#A~Pvs~WDU3j=LEs`;Na8jO+|&>PnBCI|?^uYiKm6d={`e1m{oyZvhSqDF= zjNW$N8~)B;`>TKDhkxW~-r3r+07D`^m|J5q;0DutmdP(XJu2XDIHbHV5i z$QD4}87H6_TEG&pRDc7xdJ~p_)#JFM?xF3M6Ft6uZPjDk$?=Wrm!EkC54f>kyMAM7 zOCW1sbZxD5CuRoiR(5kKl?)DNp81fSccq*=ck!qm9s(Wm!CXr8&bt}ToB<~rU;%|45io)g3IVZptGnuiTq)d5B=YM`Ct6Wm%p|TTuxSJk@?JY=He?~`;K?L_b2bX`<|`@L?{s+ zT-eP`wU(06QX;Z0Ym$~(qqN?Ls7PtOMFekpe`3st4jLm^Qv1+H7!klcP0P9>41SfF zbAubB9Y#x$u8u4Y0RSMPPE%{$!-@<^OF)1_8s9e09p_@6r^zz&N_(DRwbsHkXvTr1`6ewBAN`Y{pMz0OC}$jBc$>wW^IFW4MJX=C97WEgOZD z)%4bCoyLcD7b$&07xmpImcMb@=J zgt;f~&CDM0v;W>pU*Li9OAj%iFt2TeEHP;G5P*>S0^U+FVl$5NMkwX6mb$&J-PB5v zQx!pC9{J9C4z}C^pptfbo^29Z>q!I^k(?nKqauzp;^QfQK1|D}Br)WRL=4-SsdZHu zDvq8emr+os?`C8aN-n!}vE?DbA~q@%RI~hov!P3|L_RivP)p6aCZV8+j2=7X+cTV! zGTbI@q8qT3iI|@BT9J}kuN)g7DW&z;j?6I2bz`Q+%zZdf@(D#qoJxq0bJ|SC$>plG zF@g!UQ`sE?kyym6hxIbgs^Mg^AmDH-| z6bVx^LuL&~>`HcXAYZw9+-U!w{}=!DfAuTB>J#jlZ*-rgLo<2lE8g-GfAOczUV2$) zhJtBC@E$B|s)X$5GE!QD5L;g}c?l7hWvR8~%tza-URj%GJpr33b^Gs>CW92|4?{-y zX&7I&HD)?Z)2Z2r()hB4ZKQX43tvd_2)A{WS|q2p=6tX%Kyyq(5J^}`s@(3j3>9jvvG7KcTV|x@j*-%XQmVVBPSZUo$KRSJa)={nP9-G(8?xQI zrt>j1HS0QVplw4F5)DJ5Jcp7CSl1=BE%_~HWTb8xh>4;kxM%Je-Nt9$r=`gdOS z!VZjo{I4Ft2utxRQ@Yg$iJIc5I2AW}Y9^$V)>>*ekx)c(?0b^u3GbxaxwoEY4AZbQ zCm!b>BGRp&0*<-u5|223+B5*fIn*AK4?oqa4y22+YN);U%$Q!L}0*B!v_QemMW+xU-|4uKm0rY=E@V_E`EX@#1Vw&k1qX>fBY~1um5NN!5wpD z@476dqErq*6a)`w;UIKS02~CuG#bUpP2Vp}h=h=25D@SLooo+`084{4o__GrE0-U+ z|A7adxpDK#jqiNzfk&S>-d{alS3EfpTM75n9HIexxB`v*5VX~tiZGa&S~!pZfFMM6 zOByWXW|HI>0jxF)vvC;AR1ctBsE3C*-+gr9Wk;9pxpdb>Ikm{%Kp7;Ia-LHMU(PRM-z(E+H>ZOQO zG1IK~RaMGRsC#&3oZ1*}0pT$)iNt$O+PtqfjYUR zrl`_J=*Z|YkVn>Rn*K7N2$5KF9P)Tn$4!&$=JP~+ZglG@Hf849IL_R5vJwp&1Zs?K zpK0^|lKF_h2#?r2dO5ocww|Wv#cuc-E0PvCOVGscU z8C8_Nyo`d0a7Io|4l*tKWvT@c9o#*7Ux)NoJ3>hj1dMfNrxZwPoHB_dAzEQE%QRyS z_Z*3{0Yu3~Lpq{!vD%1Q%Djys)zz-aZiPG1NRG@1djQBMgoU(Q@=k+Tz!2u#@3$9s zrkub!G7>WErFX>`3TQ-#aH66*#>b9; zNQgGo#yG}_@vI|=J9c@bysR{J(1kB=_0rjY1iFU zT+Ka%x$Uoi=`(-$Cm;UJt4}^KNuZ%r=J31jxb5%$^xyp}f9}t}?2Po|1tRKBn4mYs zDnx`39tIAuICz7U4n?J$!{`nU);pI80)PNc?BuB%S1&*L$hW`twQt@3wFmBhb3USNnEV~k|NH#nbgRs017jE5HJ$&4kqg@&9}e^0YY?qvSdn6hPZ^8 zc_>&TSOtk4Al5j!s&N@kApA2|zCB&0gNLWu@Wlt`Uv>WO+wkyhuXw{N?|RuG?snzi z!lg@aXZa;t9 z-}vi)?Vgvt^k@H1|K~3~_P}&Tx`+4ck3aZ@kAuGd(z*Hki-Fk;=XnAHLbu2SZ_kvP zjo9Rf4iU(l1RemWj-jpYp6b%nZe%EcxvlG(i#9h_fUzv{`++3+5W-KPk{o7?L|KyO z+RHhtfdC`QFgz1)-Ny95dERC0WAb?bL$H*J!I7napz2etd17VZ?Czi*5nU}yJwRw} z$g4uf^JDpHIP@J`7S@hG#;CT9P@2_1y!a))ab0whM_2r$Z$Zlu|a$Aef#E#55-7bnZO&A(M;| z0LI{u#Az}jFJbuzH%-j~otD3*#w?Bo0sH+jO;aiqQtbO@UjIKJsRu)2n#$T5j7;4T zHIwG`0H@O|ZbWm-y{Xh0csB1$s_-+)^G#^hi2t@}H#EEvM4Q&~l6*jo~(T&-!ATCL~3_35ihq_#m*2l6Ch}O$&_> zW5`dJ#}pBjQr6bem0D}TG4dY50U7(+S$Lb42$^z|$Eum;b=1>2-Kk?_!B4KOGaVKV(2r+<|4kmMBguXOT zD1l%L*dD+^4s}sfAarDcBG4k%<>7BV`1J=K_~fU)@QueGef-MhCy&>Y-W}YoVSJRu{mSvRr=GpO?`!Ys3Gc z@BH+gFS)mOLST0lK?C$uV~uKh%clc~2vbcL_qr_UaAqOxYUX3a0^qVP8OxS{LF!-I z+A_B$h9f7;Yy|2cK{gg?VohD&D3Bo6VP*&9G$`#VrDR}e&h^W~18I1Hvx5=gbj4=( zpLlX2(;!XlEkZQGpRF*gBe455L1g|Y!kiI<#SDacHV95ZK>12g3~pVKKgHq6_D&&UY{ zr>J=9eREL9NL_-^-cv=Hnu73P8L-<>K#chMG%Z+aBeI_ZfE;81IrVv(+S-t)meNxj z4e;}S>*asux$s>(3}FcZcW275l;mmxHmblKHWy5!c6cP(ssRKGg+{7zHpm`EDl&28 z1a@X&w&zeFJYAi&Rx^)iI9x(#=CIv00ANC7PDC{@HXL>g7|)QBG@!QDH%~lndn^Q? znUz}76J&0TT&LRC<`zSi8kpfQNLzmRruWGAu!Ta02P8QLqbMU`?!AXcAY}3|r;akx3pQQYM2{(oeCqR6f#X$`5k3z&nyt& zYCx!FY5UCjjtI3kk|M&6Ax!Jl%b)wx-~ZGf|JM5KV-;NlTy-b>*4N(m_y5k{egAvk zvzv1)?|sS8CXJbU}W1Q=1<-qCHgICJLQncd+l?znhiI(Yd@Uv$Tv zcV0Mu=KT2!=Z}sk==`ONL~`cL87KwkU0Yk7r|f|9`-ZvN@v&()4-(Ro{mJq1jq5j$ zdw=%o)n~6>{mwJbJbC%qD_5^P^XxNMZr-?d^TzRda@|grSfYdrTx;zaUmjYo^OgPY zKJtaTzy8rzp1<_=7r*LlFL~Wd&)$8$93DIR2i6s%*+6isV=3Mdv8r-mla9INd?ion{$D+-sicxN9!%) zH{3l-tK2kml%b&&DFlej07H1X8Az#=;${)x;1mhKlDi2r3;XJplU9jpEz7b(&f+9Y zi^f*OV#*$K)5ziy0lOMR0Hs|#N|u05;o)EbxpzV)wk5i|F~dAy8774=cd#hi(4p)A zrg<8=O2CY2Z`(9kVNT@;3|&l6DY4B4ry}8Cp#w=1&dDVKpvN3kAa?&!ppiQ4UT}>bL45!TjwGfy2r#hDz%o{d-oUtlZiQw;dEQ|o#%N{;#?#Z zeuG69NjPW-A%qdZbeIzI@NY|-=6Wg|M8KpFa&~uWi_@~>k#Q@Y@`IEoWn)xp$sfJCWLLM|F2F-T9)s?z!{gd6752_3f{^@4kCp zbepbm{?cvr=+FYFltQNaCcC-a+#>;_m}x{11rc|3AY>*HZYO&r#41v!SQD_5e7(y1#zq`qgKyogANh^IPA1=GkW+eCXScJ^92FH?BN=pTd0t!K}}9k&BHoSk7OaNz&|K^+8O7MKkR0=SyVQ2|PK zkOc+JlcR^5^=?+4xP0yZ@vr{tU;Opoyn%SUZ(*=Id;43y_xhE(Im@e=X6u63$ga%yZP6}C)A&RN+x9TG^2q(USBOttqu z&6P=>-+X`vor=*BxA0f@2m~rcPN$!GL<$0Zj4K~|NH*xO&5TJMEdnO*qCE#|4h81G zkpRKuu zSI+%2Uk$d965O=H5yS96L}5WfIX;eAc+101ISeye_oc1>{NI1g3p+4=<`*9VcM;j| z_tRXHwu*@Te!rXNb!`U+yBxhT=v=1c#Bx)vbqa7(N5T;(i>Rg*q6V3 z|2H4~_E#T#_^D^U({#l`jbpjKmmX)4Uslh&?Y39EjxYYeeeb&G;)@UJ(JDOOc?r(W zaAtA^I;wCu#pF1nY3E6xUgAvNKmK2S{Ug8MgjQ3B zc|N@TUGM#iZ~lRwSb2wmLOe<7O#_`o)QuUek0v!dh%x&Eh#<;Adt*AZo2Q7w-H{Pt zB#3N%r^E35DI%rz2@o>pIBDMAdd}NP^fmFNX`1_hYR49XM2NWG?{~W$5heDUv2TgP z_!tR{+H^A%ViLN!-6vY$K9T_w%(9$=fKf};uBX%35QqLJd4iOfySup+83U&QGL$+7 z^rYr7WV-;6nR2CyYif7LWY*K*wr(CI`0(^I&))C zHhnE@s8m*d0FVI|!jiWn{qrd-YON6hj%PU zv$G6fW)%9lzwu|2-rrp%^~(=yR}sp@7%8&s*J-XqyeHawhOo&z5Fkgo60U1Y9b4-?VKwmY4w`2UWJ#Gn_GBscX;t zkMJl`PL`8WN)B62mmdNufLn0EP@@9t%`2b%(?9scAO3o~_LSHP(9~m+>HY8d{(t!Q z{+Dlj^=qpVoHPh@w|c;?rp+r8FoU+foJ4qq(ob%NIUnqd)xA zCqDPB2QGKxsd$lCwOSXz^XCpGl6y=h0tpe98g6}Esfg4X=DjtUgopv$y7F$eb_1Pz9{Yhd2F= zXI}FDd*AS*uY22F)5SBl-2sk(3@^F}ckHa4@EvD?2+-kR0t6#KiC_!{oFN!eJLbL9 zZU&3%C;Q9C*Z!Zs@-P3(U-{LO&ihrd9vk& zP)3%98S`jmrcBxNs){O2?$~7+7Te@$Q-%h z9@9K6`-Pde*qfd?Med$)9RSdJDa1rAVUBvsQkInB&!DXAUECMGEg2Zt|ET^r(XWT z4vhc(zj~y%js%6Jn-UNbMug|wV7Kfi;xsoADfi_V`z)Oj2BRL|a#vy`+Jma*^wP}N zJT+10@Snl&;K<>Kq4JK{#tOj(=A=L^eT9P_Pg4@{=o81uJzBq%5LvX-YS#hXWu>3GdpwOw}A+ja*%? zed*I5`uHFJ)|JN}C}0fg=1lXCzVAIh^Y{MV8(;J4ip1Tqc?PG~%IFb}%Z+71qzQox z2$m!=M*s)MNbYC9WEM-QCAmsO$N~j(vPgirldzj> z?{%6;$h5l!F%e;=0*6Jqu81K>)GRe~ZCQZ?naly27a^{@Wz}wU{o2*fefjI3`r?;A z_m$6n^?`5PfPF)|etZmToW*jt^Ly@k^?UDn%a6b5eQ;&H?c6!Icn)qqg0lrK9YKWl zMb7M?lx|*j3^m|DjJ5YJg^5F(vIw!9^j?qZH@^AJ|M>s#&p-T`Pw~;w^;H9RhiC8j z$-naN-}Bn<(I|lsm@%axQ~)AtI}67^fEZyjDF97MBR$DErh7|A2Y?KA%i<W2B)sxW-=0v=*h7Q_>R@sQ$&RHo@O6l4Y-^)t3)M~2k?x!LyOQJWJ z#nk?j7a9%nkACSPp@h$<>u5Z~V{NUL!pxZ^kXvMKvbm)42Bp&^!y1Vw=T4u_;TqBc zDXll$?2#igbtK?tcowGA8cuOK2-AUqrm+P^bUq4%6TxO+&X%^VEgQ7h zR7NB88xat#YbO8YA%Md?G1OVlQ=?;V4IurW5t}C?-(hBWq;Ws%kpW2!qYwg&$k>yU zeP)}dXEi?&2IRo6&8D6o7kN{d} z(D0Tc>hV`T`;ia-&j0)RGY_#YLs(P6(|kZ?XY^Z?MF(J}79g#pk~ zn1BR;)|#u9-JG&vYb!~?!qGb*Sl5ICh`Fy#YK6#_qEg|$H0!<8!t)H^ZRwH{YT>3j z9UKPmaZ?X?(X|+ zDM9$t#konzF(Q&1LqfOIZenhE8JJgU?b`FqNP`|{sHj@0Wo<2w@KUR(WrG4+?oMw# zmwg5a3O{H4t5a=ji-<926T;Oqhc$QVQ#V|$_K3(LY-|f@U(eakn^@>MzGTZvaer={ zb3z3yl>I^S_SqzDWihDf$i#~nxD$IM;^FjcywU%ahB3jpmIq@Ne z&MG$MKg=_cq4!>=2}Z6vWyyI3Y9j);^LFwkjtoEv>E zCc@!s0i^IaJ~^&+$}wJQiU`7D?zNU2Sf4#sSLLC69S?}AXUQ-~5gZXxOl(^uTq3|y zIGhM*c({-p5W$4GtMkmj(bisBkk@Z~@l&7t=x-lC`*=kU0iil0z2l9q|CxXA_g;O^ zODb##k6oVp#yN9tt#DpSn_okqJ<*UOoPe4}R#s`=j6g{I?&vt_=?{78Q|# zlhnhDXV3iTd*A);x4iAW?|Rd1m+t5?l^w0eCsJ|V5i^E)ou|HEbZJzWGAc)1gaKk% zjv=TZn&yBS3bj-*^tGk!IVV80lYN;cGc!{`3T@VV-A$&31t6fQ7A9~*!cy4XtQkbq zxvH8iduHG?mH>h9R7zhLH=9f4BCmVR%kO#dohLWm{|6uX*dKoCsy z-*=CYiH>&DJKp@ppZdUG{lcfdaee&@6}`r+6__#IOi3bCEJ4S_6qNWq!hA&~oy|K%-0< z77Z8)oaz6}o+BCCk%$MuObOdUKxV#X^Wf@8TdohWZzG#B1q3FT zCIAMI=ToUATYV1$%jPL@D$M`Z*yTPZ4(0sX;h#wG05&y& zTA!!sWWS$sir+S)3}6g6h;SGQ!I&i`5_&iqX8oTk5S5Zy}Pz>97F< zA4%AB+5qA3@TZw!Oz~l25n-k@vD-$!Gf_wmS%9z+virh1jGy_%2Xo+DngCN_rfO0c z0Ne7MzQQ9CpXsf08cJheFU*qSpRS!*SSS@^87k#&Oq9)0Dv>jFa*NrbY?jjj1Y>hV zP6b|aJBT@d0>?bw999*~OpL0UE{aqfjm-Kjp5)Ynli`C&pk)iPnJtKgdeaPu&X||P zg34w+O-JB(oeh#YJ#kGnZTg9pN)_$tC1e|ie~fcpHMxBuc8HXjB{!HAM~(r=Pi<~f zogyMdYq1@$k-R;jt09uQO?7hj-dhm~0ETv|Kuk>^J~BR`=9*$ z=P%#5(tHv0v$Y&`eto_3ufOd_zW){XUEH0Mv*+RBS(p$&VYh=SAQGkG5yR|orgU9o zSAbm2gc!kt0P6hsM?!w!?@BMFi-v{Qimk=CSrZPhq zxB_uggYapZQ}@wZtF?A*Nl47|oa!ms2A~Zsdk%*2k@JCw%%t5sEFsVYUDtIL<}Gkx z%lZyT3DfD+%am``S}fevBRo6u(^~knkbiFW3?ZEw>j2X)qN?GZBVO_!CL%P?GeDTS zg~8@*NFpGAON=oOBlzI?I-=e+UmpMxegFU|k_`mF>GvPJWfbw|Bp+jY%+0)1LBO0@ zFq{$@Y%$RLi12h=C0im=Jlvj}OhXBGXI53>+`i4k|x9|Nk&xP;WVE~|m3zMpvBacj# zF*7z_J->s97{2*ZlE-)VOp-Cx-h&Wx7(?#(BNZGVS+We29YK4k4UA#$Kb_?e0fZ^^ z!IU!)k!|@=16kSzB_-SsIDl;T5C$T2AdhhErPkDkBq^PK(KJftHy079r&`u^>luek z!nVdd1xOec0jBxcEdj+W;zm`52$1lw z;+o;OIXuAK(v3NSRS<~Kl9?n)i(+9h8~)q0TE?d0A|MouKo8%|^yGIQ`Q(Rx>&b6_ znSIY>psId;hb~u9L?Mu5nNZqrCQ>7k}W#fBgMF^uAZW<`q znD&lo?wzWxtsi$O0`6{6jt(IldIw@~^DxS>aSTX|NOhj52zUSiL~tQft@Dhv=zif+ z%fW$Xfl>;RAY)$}6QPH>u`oC+Cnsf^m|1(vw1OfMs=X^PvIrIiGhqq{KtPtl>z(J% ze&GE-_NLdo@l&7v%y0hAZ+-I1pS_8?%y4CYXV^8y&kXK?LQ@)U^=@1t3Om-P{Vm`LlRkoA=(QsirN!M$H~W9J^OR>* zb_Sm4t zvEZqKrPL@tH)4-c$YXA*ks5*CG{RUonBBrWXL_=TbRBao(>|P{_S`eKHU9EoX70nuF%oYQ z?CPpErmJVV25$*eBV7>zw+Kn}O;RHvBOJU02Dy77ee#h9 zKlzdW;o)z5-q-6Dg9MTAwfDaEpZ>4@qxZb?oyEycdNdOZ#6WOsopW6s-{c~o$Ww9l zK>gxF5B*>N@4xi1uYTdln>W0&Hy6gK_{(m;>nDHshko+UzyFo5ysuU)HC!Wl$AX>` z!phcK!2gG{KM%I;s?I#o(apKmKIhz49YUg)L}S2Uz?jCg25bzru>q%TY;4jtcDk!< zs-oh({G(pftCz2$qOvM8qcWy2TwfV8HYsKnNi~G!m#m-Ia8u+nsavUTe|4#sMB7t3kN9sm@c`U3qKaMuj8G0}Mpr!h{?Er7(-YR=(N0dPEWS z0AdQF8i3$^Y7&5fz0a9FV3Urk!P^|xAAR+SH$U;U-|_S({?&Wl^{(qbbo;&cAr?Qv zxAuoG-1gyH&pz;mXTS20U;4}kF2CYYk9pejhq}`(L3puQZ)zRQXD&HIPSSPM zTDK|jA-pX1hG8(X-W3VQI+!~kGNOpAH|tVL4r5a^xCmQ`RJ(xW*_!2J$_-qVamg28 zW)NEZYk}L{`vPtA@Og=VCDkQ4h6qJuv)){+h?C}$uyHrnEl(*s61ARCKPHkQ+H?t; z1t3YAm!_?xwI1Q)YIKWjz{iqJ(6zgJq9w9yPw~`6XhP2MA`RP%LnVTi@o)Ox!$r*i zBk5HDI8U2l98C?E#eN{6YA2+m!RHaWWiNUTrQNraB9_#_r(z9(GB`Om`4_oW?yg;7 zxrQUcQI{7eufEh!shNSpRy+*=Tx$-l0T5hsx1STUZ~MYv;vSZoE!D1SOychOJGBmT zp9xr`tT*eO)hb2Jxp2=xWU^BzdFWWOEn*}o3rP?NGPMzbAe5M@l&-3($N;z`m0t`~ zO0_i7B8ytywnX0~S3@n?9)tv}sV+6}R6b;{$C5%CDO~3^dn_xHT(J{k5S1m7*q9h7 z2zcoM2^W0U5>o}a36HXb10$k^$&yq97wZ&cf<@eg`F<2GiR#?Sd13oT&PkG|g`R?W zTM%)nl8dQ%p2u;_sjC$6^uU`EQ6}0$L>hO&0|}AA%osVh-N0ahVKxppoj-fiC*J?n zo2~~vsDeyTh#!5$iGTddZ~yLRKXW7mi(sHtiLU)%WAii)1)}?A(#;0f)ZK=oJDWEB z`Ct9bAHM5vKmUz;H@K1ADn!t6#pU~7_QD@~&1+xy-OpL=tPE;^0TO_kH9>X&0*XMj zAPAcp*9r)I)6fF}=dR<o zfiQC|bpR&tn0u2_9KhVwgGG=LkSz>{YD6-Q;;OxS*ic3UoDU~1NGS?h`b88%bU+F! z6c&RS+2-2EU-fIh^tR_e|JlFwdw=@rn{Vi7XHnOF{*iCobo#=XpLs!h`BT1Y=;8o; z#R-@dnBYPO4BKekJ3&T3>=6b^BN;j|gIV}|+3~&q`qzJXvpM(MfADAHB`1~Q^nG8y z;luAL5vy_4 zwL<^`xSNzQAZOg$fod%X*jp#e^#c=P5#a@P;GUU!TiSWnQW3$#1WTMu(uQ~$+!sV# ztyW05*-XPwnT2viXRfw1<@t20sYpqiZSOrNPDJE=*(|E{+@>(G2m?s(+FPqbO%FLT z<%5ceCC!l3^e!OJZN9i$wr^@`91-&-W9Dg^hGAgld7hXUi4#WR;Zha{n{EASMI^B( zZk7fzWJ07wfte}-1Yo!!Q%=#_Jc}^1r1v&GG!eGEhD#)x*P$R15gi^Lrt+RyavNc0 z7E4G^{$0F{>?P)0bk#c8HdG@19)R`#>V=WeN@0n#L@e{MloESuvoIU@JWs3DxS6Js zgPk1zMJ}Hglf*R7$#fEt)@CA(aC6I;t#pv4>2aFpQcI!ITC1fXA_1B^_>zoWYVn0C zm^dj&xir|Kjm(AvIFcP7i;;WVYPh@GA|m>xKvweKcI~0d|4~%|As~t*FCIjgn0xO@ z+{~?DYU2=5TSr1hO8rNQ3NP;An<5&%nb`8 z1Y!_Et%7clvv6VnWJD$bvvE}*x=-f45i$aVGC?2(p#Wll1E8rR19R>3ETsan^`7`I zloDo`vAGQ98WCJ2^MZ70OjyPWfW6J&Q3}&A08nUK<_W|ogcdqCHx(A%8Drg;{Ad}! z_c_mh{8iWf*h22mn>x}lg38PS;jTXQE`$S%xg9@t{LOFp@h{$a$EUyeRRu+&Q}^C>!-wB>?ARqo zFTdJ?K!mHb^&~{@D$J1-aYQxS-Pt)@9};1HR@1q*u%8e&>&>_tQ@YybIR`sSwn|<( z5$SIblHPhsHcBnN;Lbh&*sR|*rwH!RgM_kl%~dcEFtUdRfM+C{u%V@NB*LwG5lMAv z0Hmlr^Du^5J)pIDr~@FlS!-IPTm;H4<|KE3#Uo|gxQldeFcKG5Rq)^PB}tnj5*p|Q7o2$RM>8ER zRhKLbON=W=$`vBeJVHJ5eh_=>xFoGnu1M=pbG6f2+u7MkLYhp>k&Jzes`8I4UAcshVhQCLmro91B+p0L)!P zYAu`f1PIymtX88f(VC76|1)wwk+(w1*teXOl7)rWY+i(BQdvCmPGfD{9Mw#OHkz=p=-WUJk zTi*PPr#;O&422-TdJl6Ep1MgL2+Za#Rdm+yD8ta(tkb%bT2?FI#TQ^|VU~Gsm>FdA zr0QIlgaFy*hC~d|dJ`#Bt7+40;YmDR7k_<@?ZnA0JHTL=2RGnJeT1_ zZC;P#80H87fdDYib6u^F5V}HQQyCB#0(xsiEQ0`G1TcwCZZsZT*nId?*Z<*r-}$K< zZg2whiRbwW-2L$v{NPVM?*|@TF7y2ZI(ZaM9DxDhW_>xqOO>=z20#vX zt?Mw>X-b2h=h19tQc6}r3r^oHPc$OVsNl3!Wl^6GuZX14EDzRFWV6}i{w#HX`Fv^D z%zLc|^>B8=R%XI9MufN=K+?V7Ko zs&bxe9?5(Y5xxlIkY&NZoZn<}98y>$xy;G^{AQY@2qCeMTW%o{w=oS7k#TcKRHT@x zZnK$l^_yM|+%ht@YNPxlN7^|xA;-k3Jx`B3p#S@y`cL~XzV%2-GI>HTvRYT;IBh0a z_A*=DYb@CC9P8(ZW{Dlm5seumn|ac_7cP@2F%2RajFH5>d^IsNhAsYl!k5$DdT=lp&z2OZ%^$*^7Y#h*h0MMxgKp7+mQ<;uP2wsK) zssbKlSfr9v-hoo)-XTDknFtVNXBDl32i8H`OtsXV9q@TxueqS??b_UerS7b(8!&=P z9SDWN!{)9wmthD(FhIif{)J&@#j73PY*KEg*poJvNT77%n<)T}yGPv35wuMJNK(t* z5p@mkL;>nD6hQE90Y2`n`ZTL{76zbs-XL-r;kc9^e$7jt@We;|?vW!Oxc=kk_IqP_ zFgAa3(|c@M|HN~D?6JpALIHpt8^nVZ)Qod8-T^#T)eUv)V};n+6+=IMbo}1$e*Rm2 z^oRe|Z~yz#=MKxxp3N6N^T~Jb9Y1;9^IpQM6*#xah!z-8tu^!69RtD{t64|FX_~)@ zb1o%`(epHyA`ww*ndW)OU2gBCEaYYa(xw-!QG_&26C&1HhhaE4IPh&fo*Tw&^jm8P z2x*!N7m!3EA||;6v@0=&M^{CJTI*&rvCskyJbZGcih!** zfRG}d!A)J4&K)jdZfU9Y0U)B*k~0-T(ykyGEWN}4Bm5VPq~5o;_^tvR`LRG1h zl-mN4nW^?1uq>X^Tq861vTTkN&w(!j&{WWRLgbgO%2RXIdMl-1U>!R`F3GG#Um z{T3FMvfYI$O@Ro>VK%d^5k1Y`#LTTVqC^>P?>WNIa9rYmwJ)H+ToI)R$^n;UKH#FT z4!Ecx0RRk4OHs~kg{hX>dM6|nCg#>VMMR(!#scg0G}M8}E8@9RcYfr(e|GB5+ja_( zDuD^m^Pcn;R1F!XNoq*D_`0>e&)df6$s+S~W`7k~b)fBXBtd*_)) zXm3PqLb4)y!85<(?LYUk&wci@cWZ$j2xQ<=S-YC{ww{Th$UqFPv#I6klWNgs>QD0>^t8u6@t^$C+poIxV}X1 z_0>;!{ESq{f|y+T1)`M3P1k5bj2_Anzh0Ky+#4nb>iu*{v_IQ9#gc zW(t@|U%BNB#QdulTNDe=(*ox(w<-k%2`TS91Y}}NP&a>5DVl$EdT-r4&;vYos7MkK z-AqU>whN2dy9ffAy1Auxc7b6KS=0RU&7C8pNWQ|Uu(~KsPE21OJH(W!MOm#Pf~gV} zVRrkLc^KdF!pMrI)Ve4}TBmJZ#nMtOWR7&A;WtTq?g%)yxej$4hiRG;Zo$l0u+1&s zc-eBiRZW=Ek*L~pmM0=+n#he@Ihb3T?^DmWAU(`Q#3MM#IqtRAfN*nlLw8uhS(jO1 zcG=@N<_M1nd$*DhTI7qubAZJ{nj7`r`%vpPHZsW^OD=q_p%73QiO?e>Vkoy>u+6|q z<9F|xJ9z{U;r!;+6fj^LIS>$wR6|utaWjV?zGxUkB)CW)A?95Fq?@w!&LY~HxiO0f z2LS_{www$!o1~WggYzH#=zDJc(q~8ORUp7(<4<_}AYS8=rHVD(DiTq@t^(gfBq-uTGvv%byq)eV)eRLzw%e!`g2dX`btqHi|KGi z!eMU&NLmb!JB$HfmRGeSpY0SjZq;tu-nI0)#4f@b2C;t%ZS0UG3~ac-Az%wQ*co;Lfp~Q1|E%5RO&EOjSE3 zcA+(LH#I0YmI~f zx9y!c`P+Z-NB5t(5LF(Srgwhn15DGKzw7l+xa85WY0w)S9S{kW>`-aM7$PJP2+Sd{ zuX_X;Kgx@V-xe0+0~w)HlBR!FT=1D_;L|M=!nFUCo@3YDuXplp=`O z0LVZ$zj_aMkpcn3Fqm2?H6Sb^)lfv7%|YUcRE?PeLUqAt=GZwhn+O56p$n?U%w?zm z(Rw%YB7^|779A|A#Qfn5xIdYe@^`%vCaUCoM-ayEIHZ%GrEFFk2Vi`&0rlHoFG%!^iharVi861~$ zh16wT6cFb%xlpl^$q1S9AgLWifI8F#gq~5VOhw9ivtAHks>%BGNGR5S`q#HyZq!n; zpK!N}fupg_8QqQ-!_6XteE^85)|y9dW+L^TcNYdk?;06hf=jGQ{*XETBVuBaQgS2( zi#{xvg|-`*^nnv$?j$qlVml7apdmA}yu*b#OU2%GyDVY%07PBPnV{Wr=#ftHGz{gE z%Cdb&OuU-8x7IR~0|62#p=wB3PP(}vre%_HE0)buZbw@00Ek;*iJ37k&_D=~QWFN? zp1@&=B~a8;*q51xX69}=@k69!lQ8kJA4wh}ATmcPqujwEvy_oA!o)*#|HhBL^VZLQ zbgy(FwLX#Kl_!q>#y@)d3!eKNJDkyVHIyo>(=;Ef8HK8V_dXqf`*8H=g+BfEe|*Pp z{@EWt+&8`wUNHea`mz&0|CXQlXTSW9p7@xnDpLf2`Z$(46z|sN#!`U9gTlcq4$dDs z4>YW3Tv4fD2G$AOy4u`)>eeirU=D8(Sj(_WIDkR#>VQ%T0y$7>ja^gVPhg112;vH$ z8CxUcY6k$c^|W6sya$%$?vA9|m0@=``(Q*WbzqhN6v@~FweDd6$f4whbDuVweMI&7 z0KE+Y1BOp)(}|hNFi?@Ez0DJm4tva1%%IP`%I;6S>8JnsFa6ioUHSypQjVRtw;le` zr~mFRZur2Nd4j{x^9_(d08|+eXD20yq0P#KXkJAIp^8+I=Y!2NpZw&vzVXdh3`a-i zo!x=4-|?jzZ~X9I!{!m90Ky(UGkwAq%_IaeN|>i8zua8XRrT1zib002TBuiCeH z4@>}1O2KS)V*#hrc229dO{xbp)83VsE+QWCbWW33Al!58k>iI&ww?=uoTDTyaXWoS zBv@DjTkEbAp(Xb>^Cw7zvo)DpYi+@d3Nt`5hTJr1=fJeU7kcmcvSeeIhoN@O$~6ZP zDH%u#T;dc{qoIrEPPO;NUa z&+SVhKr);w-FBvyL#?g~i`*hH0F;28NPI#XK!{Q~wp|=8f#If>^I0Y;rR3+S)=Egp zwGGJamgWj4d#Tpu1d0Iw6HCcRLC?&^+;b3-sd)g4h{$@gF*Q@yjJ+&ukX}6(DNSSQ z#v(f--~6$^yZPhqrNavx2GPJ^M1Jc}{Pg#~^7ZUvTesL4I>e?)#Lm$@4DS~X0Hdr% z9(T{p`hWb%U;f*_e8(eQflGu@v&UX`@}K_V+kfNde*W?!$EcaD=eC|b0ECgj(Q7FP zj)>kHY6ELKy94EC!jU3$y~Z}jbXY=VzzE|aX@Ixh$pHaDP2K8hpdfG{ma?-0v}_g- z0#wafK%f8*G|yA(leG=FiEt?#U69n_vugng`fVZ$6kJvra9Df-v9FFKJ=xVK5T6b6hS!kCHX+rT5qKm zpbV~vd74uz(Yv}wS!AG0Ohp6$rp+AT5SUQHlp0c^ZQaM!kdIqFk|LCV>YTFD@*fP3 z#3+=qM0n*iKR@J&f@WFpu{k+_G`q2w`*IKUbfG4-KC9SmxDYM7>y)JCd8NHawm#-z z3->$stN_tkbB_c-I*SCLd}S{cMWjiC0$gCnEJ)CJBRA-uBtgo$@?ackreX!lEecZOEg@{w^BN^%sdLK zF7oJ7DiihA^G72lj~sGXmZ!|ZMDsjLDP<`5t&Mx%^1_H^o1IG}l&$t4=S7H^2cn19 zS^{t!#_;I9Z_&qUw%9oG`oXP)c`?cp<<*+LQ&pYkxpy6gA>W?7jizY=fFxlsaYp`9 zhE1kznwW_o(mlA`7Kn(1y|*Q&cl(=Z0?&H|V2L4v0MG1Pj~r+ck%%M@If*L>SnGhx zHAL>lBHP_swn4dmrcz6It{Ij*@EjRUn<-T&ObY`JVA*!$N<7~)gl(M5(%vn;o80`T zfjrw378&X=&2yXEIE<;3vapD74R8biCjL_ZADljKP6rXc`^SIv2k(CO0UE6aBqYVh zTz=x8|C3*P^AEp%K&ljk+1D3Ea76PE5(u`9_Wez%L+hQ(KwLo8rnWwF##Lo!pkZ)B zaL}nUCCs3)FoD~&-W*(TGSdd;gkaNQpVnY%ts@v>fSL6!gv4xZvesCbkr)t=dhe|_ zBB3J0)SI!?Kytu9@<6jN3(c`+n7gT~YIjp4AVG)@+6uZ(2TbnM#^%Ut z8EV1J{^`H_n?Jto^VbXX1cXPTGGK}CUNrc)6y3|fB*HG*j{sZi!aR;+_!elo{oJ}) zt;_M68pu)vap~qSLXC(hV;@^0t&4Q%%LmqBJEkwIYHD8P}2DUJ5L8 zTg$k;i~b&oHt(2HYPJOzO?KOm2~f3#s2!0^S)|36heV5`z6dOILdzojO>`mKTJuzX~t#t)+2nV)zmKjnTsLb-P|G|t#6*M z&(=F^W=xX0tRxlMlE)WFSV~Q1J2AC3XW9oK^qhIL831b?T5m+uTTkj@qQe#@%75zD zw^m6pd04(5^V~!@Q!7fXIRF7)_#C|{64qhphrN`N5{ptKm&S9Omz~1`##$_zK;RnY z&VZ|NmDYs5M7qK>P5JfXH~>)ZE!}OYAzSo+$+hKW`;DoJ7tFjez>D))$x&b~GXO9! z+B_38dF11Q4n$;OsbYd9J$q3d$8v)%j;9PV);4Dw!NLo61|0wreB!paUQI1L92Ra> zS51AJZ=+yLwWh4iG~Y`R&MO3#JJPlob_fV283*x*&1NIaJ3BkAceU;oA~25C0;mU| z5wQiRbt&Y~KmX|ufB1cW(a)SZGNL!NrU>!O?|jCuz5SOSd-YY?rarfwT5XzLdl`xy zHg+{Vpzx5g-{DW*|DON-&;R%kKmq%-CWEUUeZ{Z6{TIIf)!$znblM1^3`M6_Rzn0d z4GDy%fDBVd0br^-MK>FQpg;>Bj~@#S1BmWr7(qKIC@2-C9YJK8HNpla8f#?)cL-cY zEL{r{7Yg zk)D?{O95z8DNID}8C{GlG|vruA-Sq*twj(w)0D&xk0m!E@0*l6;u0fRcw3BT-Mtl$ zdY;Sq=;0C_z2F#N3#e9CcQ3U9fcB1rfY@3i=Iltaq;vPydQSY!Y;MiXhGAH&AqYh> zULjg*t8tb3nYlMY8it{@IW!j8an~(2yO&yW`j=axXfq(>zC>e53G@g67={XfZJsk? zPkY+zRYbaW4kqRt%>kkmndf;N#@6Q46PtPFurk-2WJKUNj;cz6!!WozU?zbABC5H_ zw`?T7b%y}}fJs9XW<;9i4H4%|pBHaBr~Lv`pFUKiY+X6eXe1P3L|E>afQwcM?dERj zB;|$tG4&;FlqHD;;XVvQ!h5q3GqW@(FmvkmM5IW`4yLuOB|Vy$aP_>#S&Kw zOvKFQCZ&j!yspf=YrnW6O7+E1hb%*ouq3T4Q@A6hc{a6LD-q9ggPiFzBT;J&9L=4Q z2WeW|N0`2R`T$)E`{S>E)Z5?o^G|r<;{laWcZQ)IZ2WLj90`Eb z_8&T{4{wIfrPdF8qJ0XWwJLOQ8ALm5a$VCJ1c5dx9RASlosS}<}NUcdp&5QxTIDithgYu;xwK&d0w z+TG@P0wNlVGpsj<+GZ}oW1Ti@S0hHQ6^XbMs6vcp>fzev*4x~gnQ^ULi+VsJF~*Yq za2BFcNCXLq37FKQw;mZkWo=%cBY`l*-fW(3C;i=eGX7Z z0|F{6s1)6=ecTg&`E751(v?>g@T138rTY2PcfIc~{=?aOzh0q-Hj9|L13@XmMW(5x z*|-c<%{(GWd~<87ag_$+i~>c#x=mF=L~}!gbj;23+_o5V09dMcTh^1AHsKMywXDs{ zkYm+MZa^e#a~GCUOIoAGag2Z^P7Se}<|&_RSWI%12NBg$c{>$Ib5i1xTJPy>$Vab8 zDWznM>Xy%)sH&Rg#QWlif14kgOUh+X7TY*cLP|GPZjV#HnXO4~PcvoC!%e$thHNkE z=vr$sLsQ^O%pwHr0paszIBK3pSv)mNTM7aBKhp@)>RkN06+p* z5+$4Z(TI>G#%tL@c?2)u++5fD@&@Pmo?s6^W)>;AB?g342yEX(4*(CZ!;l-NiwAmM zD_e(YcAIr`2xNt zO6HYc{Qk|XwK>CNQeu`g@LcibC&1nFyAl>R>%HZ;FNbf5QQWRoV3|`TW!BU9BRRNR ztwum(VaH@qn}buO+07lpm5J1#br&gPiJL$9;Say(9h-;lub@JK0H}89(M$gEFZ|jo zzxNdcwIB4DE#_7`7OT)`zW=;kINX&wV6_=-8usdn1&9QDn8FMo?F>cVt$za5F~(35>IcpqhCF zQ42`5j{Q*Wu+L51%-!^0-S-a#sO(5BIIs6@n#v%kT089674pbmK7TSgK9) z`uu_Sxd`>v4$hp9Fo3`aju=WQW#Cfh!wC?$k|7vCs9I>#Zt073M)0_`tjWVE>VOr2sKI3dz`KbM;b7HNsb=QYY6S?>H07!RwyVJm z!UF^~%VgGho>M4Tq%79p?G7@P@~QXBA#LkjO+}=Z>gjEUNQygPKAza-)>>PR#j=?G za%oX(0f79swH6{0DRro7mQQ_-e|zr`k#`I+T`X0XZ$=n02AnA~o|jH*Ip3B}E>*Tt zlAG%(8fKytyfO!iH9QoLMi%`9I;USw)4%bA#oNw~yu zq--?I7YG(aDxK0tYUYvVcwBVZ5J1ELNC3!~X1xeU5KKHhAu;F6nq2<;#4Nf3clSU7 zW&y!8dncApBop*J6H0TbN=U1b##Pf+MNsE~(ORpk zisWFP?Lyy7MadBf1Uz)(EIjTW!GYUGBVgP+3cz46&(m=1IL-|ap-4Sac(Wl090d^U zU}I{%^%_b9ZJGldm?FTaO^u}eBG;FbNlVL|JLvQAr3Necj$M1?Z%J1 z@7Sx~@N=E_9BcE~sl&9MfTE1Gw`L2s43e!hPg6Gc+1E-b0RSFpqhewvPII-Rm0Eh& z)c9oGmT+=ccX!)@r4#y)-G&fLS>S`J%1qe-q_fQ3z#!>6rIsxDVPTWNQf?aLzL43O z*-Q~j>Ut5-JR__LlS=Dac@SCZ*Lj|4$SIl zA!#-Wh*XOJA{YQ-5q68j2B;ZRut>f{DeDS%B9bcK%mNE&U6<;Ex9?((@*pvnDY-+B zg-(+`QbIJ%Btc}6-g<6>vc4GVFt<7PRJo#*O0}{pGBCOapaE|BMus}g2cQ1%yKem0 zd*JZQZjBrZvcpatf9gly^tPXV>t0>OVZgdeGYE=(ivtD2>ETD}it9Lfw6pu?|KPpv z{@`t2I)K2|0fH4?@S^Aa{yOR(C0RfH`0{XN@W)#9vro#;t zCMpsL&B+CN_cLd7eZaeeTz;|>(SS0WpWmP(Re#W}os}P6u({V-fdI_3 zE4T*vwB84h4Ak=pGbI*t;-sV63$or41S8w?4SF9=k=aeMk zp$mAl;IKd3*kA-xST^!5L^JW;vMID+*q3~pyGm{!bcyEqGQc6H%d?5gA8G5u_ z$?n5AXw!&5f^irbPV3M%p|IsvI)q@tDFL7&j^ukRYp`? zcg^&kH0FMZ}C zWxi0wply2Z9C~bL_h*0nCx7v+KXYPd@F}1JtsN$d(+7x%hhZ1?#U0iJ2OC(`>u>wq z2X491b_X$?)|(RctnYZ*+u!=uM_qaegUNtl(A$h2;DC%=R{)_08&?ei5(0N)ntJ0p z6e8Gkm^8U}Me?r*3Cu)_ zc5Oa|&je9cI}l*g)TW6MhTTfz4j@B!;vvkBA3O1n{^2j4*+2KePu?Ko>h9BL{^sTn zKmD5PzN0=7AJXwr0}#YUgOSc}d{=liglQT9f*}Y|LnIC_tS>!sF6nQ|eNvlmS;7c8n- zU}9pNr$&S#HSJTL2{Z15iJim@yvZsa5QMp_dbmho!W=qnpSZ}QgDF?$u+0igd-gIW z$>9$!qB2y~v_PdF1uuSsn2iCILfgT^((r_$ z0&_Z-uO|y9lOl)n5V;)B=A-3U+s)h~Z?+U0kHY|&_JQQS1d;+GnCGA(z0AT)^j~yg zDaJz_Dwt1V;0 zP5MZ_ z!rG0QGLt;7N$twQh>Lt893vnR0zGx;fa=j&mz6+ZSW+w?0;krf8VQ_z@a~Vj=g+== z%crKXv>F1wr*tMKt-C!YGuryL!3P8>b<#H+5p{N%}D@5qtkJ40mx zkV3Gk5JsK6IdO3hWb%35Zs`a-5W<=Uf=I37*v*(rR?ul9u({Q7lp{xcy-z~j&8!b1 zbYz6d>xkDp>9IfklRt9%J-6R}@9A>1+#aX@ASUEhHEj?uGF#XcCru7bn12_Qy zkOg`WiP{3rOZHR->g9^KEx9k0yNU=erOs0$Mt2{EVVY(E#_g8Q!-rY|VV-6dE>aLm z*PMZ1PEoWg$TD!2i*D@&;z`*$xOr+rlaZ4PP7Lhb^MB6MEF#QYxvD8dm}!pYx3PN3 zgD^~lEn>K9j)o+oaU&8<4G;lD$imY!6Cg1qqN=r)yNX!Syu&mW?LuIBM z!-*u0&@Yb2+T3#`xea>q{LX#r(F>0ZU1sJ|YVNDEC9-Wh(z_-UJmt1%izx)QwrF=x z>omXubM$oNZ8!6|zz+|Hv^_=uq>|0u2nmyB@vUx!|ICF^N(psBVxq8!2qsEzx~jR^ zFb)YuUP=a2407{QONo-2qGToqMuJ+?$ex^t0QCR_$iAfaE~Rj0+X7xxKzoLAZ$lZ= zn2PDvrnCgIho_f~S-{N00iw-wzPN}>HeW>GHm7f>HFI%AN<=SDr`x{pxf?(7u7~dWa?!&=L}=Em zpg;D}SO3yazwL*9;I&7Gqqg5=LR^ENIS&^)cEEKI5g-7CO-5twC2qXyOSe6IU&CnY zgP<4*-}L&|zUcYS9m!DwfUNf|)=K~Z%yqW3;UhB;0wW^e+&~?=_6Hw6Ja=|?@956S zlYD$-!{~zEJ4n&iYZ;LSpsEPxFRZKT9rxY$)jPg%#~oig9|vFk$}RUl_~6?5*>ev+ za%O+;cCGo4<3Q zcK^KpvAaM2J@-HBh_5c&2@--L1P});NN7a>XstVHkpUFJ#pVd{I+UjR9oJp=Pk-qj zoqOc`M?d?;y(6o+>AXIB{fGW?vtGa8)jw8_T;de@DRoorT}J6yYR8MV}J{c;q^1k#S~046q2O z+IHJa#OcaL01I1I`sNVJC?cn43FJsIi>ZllsWlJ7%+)|5kG^QY5r8Pm(7DaICXt2q z;o3DLX%~#HIxOb)AZGE@7VGw$G!ZFSdhSacSU5Rn7dc(%nBL)On$lkh5JhCYS&zeN z7{+;;@(b)+Um5>@I*i^uC0r4qY58H|5AW6*%@H!Lpa6w6B>-!ktDvBxms)#Q4lKgZ z3^to~=G^-HJ`H8K;)-&`mAy3+lbrz!%z%ec3ZH)DOss7^Km3h*@4MlXUwH7sL$}|5 z-<=QKdwAiI3)9A0>!u-v8SAmV!>$fh#_DF~jx^xNrq)%Nkw?kTPf%osJ*fc|V49|x zsSs3)ZV>}RFr1$+xaz)b9ymPjUB`QGzqLPfoQHBAuYBBfuY2R`9&^Qb*^#}Y$B(0{ zfq^3ecsB?nfS6~qPK4&rr(SAN>i~h_(3MsrLTGCc3z3)%%(M)HhiiAK0s&xH>fVpO z`6s?~`yGGr?)Qfb583|j|J|Q`$4@=+vg40}U^wW(j61tX+%K%lks%1nYK&$!D-WV* z1gr-gB~bj@CtUa6{Mv8q{?5Pq@J%G)+=o1&{Z`mm}_ z1geCXRbW1Pt>4&k|xvy89OS9z-3^x21QxZ$(+-v7WYw|)8H>EVaZo z(kIwVGx)qewU2%LCPBkZzwC}%@7urkMD^<)^MvO<>jlSlk6ioI$H{7^a7CPu3HqEw zd|9nxY8ecKKyD^QOhf0+l|{tW!O^{kDwiRe5u=(KQG^S^`d~hB;_{#V@t?Tu*4saK z$2SfDZ(Toh!#!Vo%+-(Gffe+Ibr%r9qSPS*kcw-dM#2CKBM>ZnUqhYyv!D9R|Mpk^ zasQwH)rUUy>DAuOfm+uKw|)L&n+q4d?+4!e*e5-0ZQaa(!WBv>K-gLnDHci)Qi_?i zt^i@Splb*z$;y$TK(LjBBc{l{)Dq@Itg6XTDpGpaly8_X9@~s7Pap?i!q4I2VJITn z6*y5H;cgI-6KO;Ya9TFihKNj5CEk}1SHgM z>p%d{D4-rfi~?cd@$J)UOJVD&A~ zV54%BoTD=&RMT9LxTSl=v**yQVFCerYmjD3_c~M$YI6&7b)vtWc^PXF2=$nZFYL#dWo!T^Wq1Da~ z2=#fRGYEtXD{zO+)XyHY%|=#7k3RZQFpNMLpl;wwZDUa8TW`PPBOm?fhd=h|2hTq6 z(AkI2p1aVS&FEYNfP>h0*pw2r_PRsIj@1*#aPNp*e(A}}F84ZC9+&{iNK(vIEq0C` zsa0Cx0t|$-JJ=U6{{a*gSB``t0i&HisCE(B^Kl z+uk^wU!QyL-@Tv2F2C%GKls3hj>(Z%yy&@4dCJqj_XW>gq0|w>X;=-R)((3eDgbEH z0C!IY4u?A^00tr`Aj`mI0Q0_{gt3k*MF%2q8%sfJ-}$sB|Jdt(@UH*!x6U7I&iVX~ zkG<=PqgQ;-HP0D34MTzR2Vg6}0)+^ zG!ZgO#^o||Am%uIIj*#Qzg&vsSJrMy$1mq2tFAyT;)h8@e5C8+VKY&@P#F%-( zNCqX;HXA@%hNtemU)(2$2l66|&Ua|RlMyl{lSAjUjF>VdycUTt#Q+H`%UCNS1i;>V zt<`B+T&o%^Q?AgifD0zw0?dO5Sj1-AvZ_3>#*0oIF+0bs$Wqx&h^CeUP2R@vLO>m= zTV#}D`u0+`F^oe*=7a+RWmIYysPSA>@(v$3p6_s8`~3$p15X4qgCR@`g}@9VkQkZ+;=XM@dHXG=rhPuT z>a7jLPrB|2Km6L)j#8L21{F;^dRT9zFz)O^m`{gEGayC?Uq5noL=1@G#PQurjyv!? z+c*|IoDa^P-`~IR$xnRh{zvY+<*r+Ay!mtY-hT>(a5YTc%h6p6nx*2fgFDCJ_;Fty z8LoWPWskeYPaNZ;M|gLa_V##pMTOh`eB@~DC>AjQwi$S+LEV~zpdlzQn1O}@z<~3S zdE6~(F-GzI&GEgJd*FI=_U?OXw9V;r?ffJ2=~IV~JOB?r3}Uy z$2{ZS3N+9H3|SBbD-RIb*E0!G74?7vE|RLw?2 z%1m=>C`5?lW~SK|1QP=S5eK@u5#cmV%rXqM_3l|pmy-QQ?>)92tXgXC3IN(|2?f~p z?g)^%JL%y_V66wZ88Da3{j{uf835Anjes8J7CBSMUE^l6$-xd5%!z`TA%d9(abYPU zT{VBeoI>Y8H_vnW!vSEPXUsDJC=HC-t(4Mx8|skNe>M;KUkln~p>*3tUSG;&a{-K7 z^-}g1QaBL8mt?uL`g*ufz95S@4Y$UQ)>@wANJ|7EA|U}pOw&wE!h#G;+_it(7lw9a z;$awC>nv>DvK+`BFg!@mdw7H_W<|=bGa29kOY&XfQ*t|`?qzESMa*FoCO$<(5MXJ~ zRP%06-53%9F2dIALoYI60>Z-yNY&g8APC7kX*pDCMWSV~wvB$wVV9|zEwL?t1Q8;l znsks%0V9Z5LXA{K7%AV&CA2d6S_|Esd0SXPt);6D!;pU|K(H`DZtvO5Fcn>}T&PJ8 zRqcS3DzB`(GVFe{-jq_1sSJsJ3j|aP2%tg?ddJtk{NeY%K6AcmO$YiuTz0@|S|FoPN}fjY35w6CAP?~D8Qoaxhg z)2a8Jo!y`Ou{S>bY1hT%^VG&FrXG&2TBMpgwApkba4uCULT|d>AYl}ez1=zKDuH6Hub5XO2VjH^m5~tvz>ts&(KPoS!AHl5 zqA{aV96$O9u?3TlyH7n%06T~!^ze~0VKc1v{mhw1zH;07JH861PxW(WYi!COF}HJ@ z!?XJb_kZj(7{33e>tFueFMi#tzW<6#PhRnuM`c9oNEqgXNQEE_UDeHjSqhdCpfZlo zZ9IAe!T|{wW43TbFy;b8S3c%3Z+ycWKK1!q?tAEweJ(fL_l2A9{^DiVeD4qiOM#Ta zP6kf6BT&fNY~Jfw0NE{*h#Z=GYrI>v&yT(GG5_~p|HqHH;t&7uz3)G}na}L6vG|3v zr{4V+|9-PMeA;tf(z`@Pp+{7y82~OKZpK2YDy1+{VgyrFxH!v}K49sO-M!S}=Bk>= z-_|;3&@viAGP=2lWM96m%^4seud&21$1=>2QhIB|5&e&X7TW;@F4KagtufCmjflX&Sat?E`|#Y=BRLTz$*tC!c|7K(YM9l!FTN9IS(ZJE zt-8Yk5{F!|BspESVdHrf3rn6hsv27baKcOhFin(zi$f!}ya_}?UhHU1W?c{i+Xp6z>FLR z2#-=qAgH@w4$z`j4xrZOBYSx2p09rVZ~x;%w|{A5-&vuqC$RbWk=>WS>=nQAi*JA0 zlb?Zy#FN39jt`rhGdMJ81VbPf-)txVihwyd0=gbHs&ojO4}SXkJ5JpP$4A!*nm+ft zpZ0y<_cCy;g*^}ng$c;q$$MuR4)!;7#Ukus0Ak&UIBKy1G71&4?st6cYhU=njeq)% zcYgh$)93aN&K|D&(Vgk|4(#s2YL_p&jE)|mBgc` zZl+#%0HhF(-9Z?ASVhDf(FCFB38VsH=@k-4`v8wMKm z!xn&2!sl`K$lhfD^X|3Rlxv@M#k|?v_dvVn_ICH}=f8fdKXN*vu{Z7N0AIfM8~2<# z{dXVv(6x_$;v0YbO)q}#b1y%-3$)O@0Z6-{BTGRk-8}kS7<8JXG6?H53kw(mxSBEo zAJD@U<_0%^$q;FUv5T+N}TZBk#QSmCrzhOvP5Cq3rT|M(Yw{=|us|Nb3+Y@3Z$bhHZ(-SdHW{&94F+VfuGblWbL_n!E3?LvckWx$9zY$PfiHV8bO_W(BQ?!G^V`2LkU*f#vlM}VaTt5+fq?-eoZEaxUS=}OC67r2AtnQ} z#g~A+8x!SDA7Bflj}T^9Y}=ld1`~z3nn@`DkS=i#OR#Ht+P0Y|9o_SG@$j6b65-rh z-JbhdB~i%+B3Jb09+~}{A|*hYZ5APScfg30QJ0IRm~Bso>0QD=+>(=1OdS#0Ixbta z=-QF+V%B_-49g=#%ny)9q%N6@RI0?ZULVphX81|(N&)%#JKU@XsTzw((9KZ-j6Hlc z%6)g<^3nJH`Kdc@Ek0Ecb`0z%jve_2Kk}x3__IIzsN+}AxuEkCoSFLlhh;+O4kDlk zlR+qz0*K%a-F5CVvK$$jPM^KwtDn2?Yp_EY!3x7re(cRZdilvqW17u+CGoZ_@pwQe z)DJd$C-)!%w5z*mTkY+FQ<$p=)p+>+Q#XC#%m42G{Qa-pbH@XdovR~Vdd1#%T)A`Q zqfQ<_7CXB;CoZGiV|;Y43!4lb2v@@fWrI;xD+MIRxvymuHZN#2&qbq5rsvM-`pmgA z=caS}cJ9E}2W>q=S7>Vh-xlwMxCRfrcZ~Lq)V&>Ejb-oHYUfBfz9$18-#bnNM$E%X zx^|o9QtD*w@NlX^0PN$@;kx6;p7KOL^PHon?)6i5o%zaF=G$+VgLC8^f!C&AzVDu| zJ$UM-J8%2Jm%aGSKlCHlJ@MMHkPxARlw#ci0o@tGTEj}@YU>$AsF1k=G8GnPa0g*K zoG4_s%IjYBvd?_s#;<+j{vL4Csarq#$YI+s&~)(7M?Uxt7~tAxyaehl z3w6^fCE>pi(59J~mi5E3>y`pR#J#nIe&&vP0Wg~hORm9_;3*>cL_~lHr~Xj3={2ef zfa7Xxt)*^0sef6vx7JvM0M!j5GIp~{36C5JV2)+L(NV!tEAQ?(YEEM_3xhf$rJ9R{ z31yz=97AOsLqrHKSr-tH9srUh9VZZ4ZyBO0Qncx!Rn0R92?&~YTC~E^dSjy27rfOr z7sO}PGSu)ugJl4p{&wNsRhWT+kkh8Vz^t@`M-EGHt1P&feAT;0#P04c1RNe7X5njY zOKu=6Ta#oX)wESka~*1LJvFtZ)MO^L)b0x|D3@>R!stzlaK2t@%FalbqN{wHiOIu- zctepMvtV`24F1W z=vbf{o&?}LkWCP}aUu2la#!Uoo<8vW zoH29gHh}{HB9i5@ZS*8_eY57u;bZof5Rr+#5I};xcVqiJ`NmgoE-(+Hz^u0JS6p)Ztv~S-Kk*NK>QN`J^wSfZnd8BR zXIeQ25C~WxEY=-`z!dVr=p7hkED#Rnoi=w~xa(m%f6!;Nwzra(J@0wXdFHcY^0A1y zg()EzfT@Rdn|diL2nL^f>mgX`0BWEvWv54+e(;`u^FRNq_k85~yABWS&3SnSKM4qT>2c$)%i2xzo5E~PS@L11{E7;wumtR({c*>;1&nk*Gz5LJN}HP?>zHqS3Lh^<3soF-}2cbL&z58n0u_x-b9`;8y{q1WTok5=hz20=owdB&V0niB~Cs)h_BZ~(@% znTFK>PJlSBDxquJeAm;jeeEk=`0xJkPcA5)y)gaF%^!T_i(YbU_avM@2Xa()2IvIl z$p{f(H5CgH3?M+XfXGRRd(&yysb>B7&iMLQzxvqG)&KOr{o5PA@{PK?JKJ>Ok$c|r z7r&<+p7DZLfRs=|rZ&xlm_gYAzRWHV$|4!3-sf6}0NCb+0UBl-4S9&WWwb#)eM_!U z(txrkCNf)8q(qY2;(4BH9U_zkx3gmF-TJ6ZXT3~K#uTvo{Na&+)2bON8_o5fdq-0rB>eEQMJR8(!u7gy(@rw)S44)BSI#Q zEeI7CbGQjh01#5Qmi6(}rm~&&r4b4PGxSqR;l(R$Y3ItVMv86{E|*C~;junkBjGrX zxkGZb%;!O*h{RGsEsGqv){^{SM3iL`lj<*;rcIGT^zC;TkfGs3M5MD3s)z^{+(xCQ zy};duIsl+r&*YC>94#s}MrNL-xt5X|=aP-8J0c_;Far(=F%Zobmr%g68c{VhqpgWL zo3BL>_V+#_d5bOxer6!*y_HfEh!2q1F9Lv4>oiS_oUxRM=;3Dh1)M2kJ=y(c*+}x1 z8#5KG{54TrgJc2+q62=0F1xKjj%6DR-z0R)1D;KF!F#4rE=1k6DI1mqZS4gxSx+HJQ@ zaKrv;$IC8Ua&oxx@q3SdV!i5Wy6og7mtUp=UTEW?lbbSe*>8Hrop+AyJpLG6e#O-< zdQp7!D-V6{2EF$i=g*vj&REL*4`28n{`LR*<*(iT-~6LrhgAVEt}F0PPI@>c!)3i* z7hwSCn~kiBnU1?70BP4?BQS^nhP~s*U;2_4zw^ECJ9GD`z2kd#wKE^QQi1H5own0y&>ifJf9b<10%vXj+qhL!@@y(XORpPKtv(QB%8cK z7J`FA9*7A`XJL$mC`w5+hcLJF1A0WLiSRVf7biJc8E0)OMdsFW{~Q6tn7ZM_CIJAE z=Q2iBQ!$?M{hZjBBEqtOubM9*sjB0+a<_SI7o(<;Y1(W`DMYNU3u2BiE7~Fwkr5^m z0XZKtvtb+oW8Tcf9J<`o<}OUhrWG!|H;-UIB1#KAq%DD|mNK;&0k>M4Z@?RReY>J3U>`0S#k|0ys0f@B@h?tN}w#PbPVa zeN%juDIkkeW??;1&Ts*s4t2pJ;bo(+}Qu+sz+|gNH{@1VC?>9zFh+H^1pEKlKle?HtE_ zqQj}*d5#}8nh7))`v%=%MLD{KA_xYIAOonu++YM4@YXNi{)Ibln|Dk`MzyD3bKO&( z@>Bs0bTCAWaaaK%1OgNUM7H&XHGm!2J8B*W=Pn%CJHj}gKiL1|$3FFMf9H2U_PHAl zcUJKDYfe7*1*_+OkM12k+j}#n=2FMm9Nc%%5Q!NE@fF8t6ZFZ?o%1vIJo4qQoWA{Q ze&2nte-_padLs{9QkR`r3>=UH%i`w;+Nwif>;73V$q49>`W*m3SEE2QFYc)4Jubkx zQ-0@H&wjS}&I&HQ;*zI6UB?h*^6KPjX(cO4LGOz*VljOS(iTbxli~`SdB1u2tovK zMn~vo>lr$;0tryK6WTN@&a}e_;t~Po7}KodKrj047Y@58{=5Iz|9Hz?_m+VaYZd$ovM_gy*xB1LH9|r`fOPK?F+M=Xl@$TK_$i3Jgp%Hs(oYMGPPHFtgh3o8g15Gx{>TT*jUu*824C+_ZQT1y3l zQcDU(y7t9k#higoxprmYTxBn=4rc8g0EWd`sb+>j>DJoPTmq82>%63?*NGK-hCK{+y^jA z1}G6xPt}^oJTJ~QA~sVojTH%Qp5KJ8rGIcBU37K6{r7WJEp%Ag>UddCKkj^{^1Y#nf z^q`nQT>K^pGZl(?DK3an)mxwIFbFXqrXVr71Bo2S)ZDFi56uiB%qu2UOcW)j%C)1?1S=;5iyFd5?uQ_(? z_^e2Dxn}762cdZZiA9YE6+Ow{D z>GuuSJn5lsL~OMnk!pBzXDq^u9T5id;_LBXw)-DCd&k%A|H2J$-`8P(ADS_MyDqGK zA%GeL1PB3)lA66_>_cp4Pz1>nLV(3r=2lp8hM1~z00^Mv3=0o8a)rZ&hlh6I!XtOz z^~fha0M|V2l4m{Z$aPPhdF6Yn7-%S?9#U_LNQd4ItJF&`A9nUmKH=Kwt6x66`3vjY zZd*+k`sU1U{^q|ue&W)Xe)kL4=hng?%uq3y3^B~gAiAE$aVNN7gtfH+)UskC3#WlA z(5!xBZ|7w%deM8{|AG4+c%(DkcIxh%zW({|deV2${sz=x9BCNg>;wd`BUOf_m(tL+ z%8?Pq5|c{m3=0qw7r>ENtc=5Rp7-2e`K7o0kN@gl-~Q0~?qSW&oxc0V>)*F`>E-p< zCEb7`N&sQ{nLL9+b0iQHW||wU2b=)I5Q*jmdzzO|n0y@a)?SsH~QqLvyEs+z+e&oQ;Ina}eK zfNA10)g-h7K>FKrGoOC9%$88xxf(+Eu%HL^9vA z-tVoa7ATkaIoiv81{0~NnP;UJ?u+3w#ZDHBcV>%3Mxq4&rl2CxvkRA4Xz|4m5t5oR zEtIiv%Qh;9mF}Jiz>x?tg5E8y7Xgs*uG!7yeUbR|h+txeTyK!6apBk^`!P3w#GxAQ z0Ehq{E>wkq5Z!FkIwICu%pJD^yIKc#bMvnAIIa)?MIw1w5lM4PxfBx(rJCEcS^Dwh zMgjzpcXd>&L!3Q**BxKFDb|OjVy#3IJ>$twe&ZW|=*01pG?Q#x@14rS2$;qD?qdAf!?O5gb97Mn7}@!k6y9eL_b;aeV4ypYYUcuN|boVCq32U5yag zwav}DvjDhz2`9u^IVga?asOSv_3wW39q)b5orjxtaO#&8S-3INJXGU%mB{pO`=Qc{uwB^ak4Ufe9`oLdcPXIOLoZ001EcV3H~k zF_QT}5rC0Pu0(Q1fMg4Tu|NlwVO1={ECw!y;p`ZI&9TkcHg@C3AG!7BN1pJcy=Oje z@2Ss{V<*tDFCC zq9dynxVHTXo5%`j81-NZGZuj&5#hZTz|>6~t`B#1RzLu%F}GlU`ZZ5{>32WxPv89> z9f!5+dvE^KOTX)7*BpHUw}^uYL%^_YHr4lFhk*kCx+zzL2_TSF=7U4tVLSp*S6v$p zh#;G(<7(&CuX)wocis8F{JY=t0im+#`u4Bfc=Z#X_MIwTyLBASO;BVr`{dp*IDFp)ZYcS!Z;tTV?VPBqJjG)(ajHNZVy9ICyxN(}F3q zEL-!?%RNmN#|tkG5s*yH+z3fz$qHg&4~vCsfaw6&t^iSMoxL$j?``q2FcYQ1%H0Do z87&eK?jb_ql#AhuFznm~X>Sk!;6#)(l)QaCB6`og?8U$#+op_^Ql@DtMTTJjfJ8cF z>-KG57%6gPVo0DKpmxn`IfKFhU>wJ;xOu+6)v&BDU%I1BUz@Ogn@v-6cO3MFhg3W^Tf~V$2B|x(g_%zGop*cW)@naI}nkm zRAT0U@YZ9|CgLJ_Hq7E80v5rUsj%dm6o8?cU25v4kUYm9B4yb4c`Albq2Z*rQ zl9I$EvD|_j0h`=_341spx2B8a?lWg}9Wd+)H1zKa7XX&}l$I^UbUwFczu+(WWuxa_;nlU-{BQw|oY^_C>g`26fVggh=AB z@Hh!mGtGd>FiE)z1wh^$fEY{7l(zt3+Wi@!0rn46^hK7ZXUnM)MM_qBn`jekr z-}1SSf9}@5ecwlZ_~p+XP#{>>^9TUVr3WBFm40|Z>PTF2bzCHNkL;NOs54-#1sSin z>WY`Y^o4)*?)Oe}C!w!jICb;gUwQHit^*|8?=Twx*PRti9l&8AU?2^uCH6PInW18# zk($AU9yrtS!blLkFdH}z^$kDrL$`eS)<6H~CxdFBX+OO6%QrshJHKl@c7-+-hCKDm zb=g4@dNQ#uO5|(JM7&Z;fMyz9iaR}GRmQHm#N-5v@S=hz%*S@9HQBUTYXYE|N?F?R z9N+^}8qieDtPexY6Q7w$*wjq54%J`@r^|vMU_oj|fO`-v8m(|A!i%&}2*`&N8Qa|Q z1OotOF12{XJkL2tV&P14NFlzPdtMvniF5B=7ghbDc1ap3N#fcf(y0d!oHlaA*5*Vp zPMc{MhaCP#I^Gkgk>{a6MD+B8A?4pCoT+&&&qIjCqS{-o#3@xsIjr-DFeiur7=}Sj zO?4axP5o|>T8oF9{(mJz{a?K>ij;73H%^F?E=IyqOSmTs-pmLvFj|{y9n=&SS0uW7 z@12N6SX-yu;+i5AL?lTj444^00D?%#%>r?enTLEP$$%#&4sc@-xCmlEL%34>hz zId3>(3PUDL_*BMX=T?T95D+2qQptBWA|eTZfJrun1-%&%coBFG0O@y4l1x{1w^}MP zLFD2l+&%Yz7tfUt|I7dBy*Gd6%P#lgYHbzXYKIjM^1fRu6fF3&wo+7>T$ArJbVoE zLag)LAtK7z2~o!5kGXDdb%`Cj^7L1}^!xAs;Panz&2^7`+=UBgD-v)81ov+0jLclK zxlHH%`Ao&LpYff~dg@a?eDf_jtfoD_>AtVN@{t!_DkoqVp~JGV zQE=^qE8xIjn4^2tomGGX7@)x1Y=13BkB0^#34{Qxr*_#Dm;b`gz2&B_eC^f;A4W#u zIQ_ugU%vTs-}RF3+u0j+iOBVoy_+u!+kEj`pNTo6kTOin%`-yvq97`d&xCJB1UV9O zsjRBjJ7#@JoT5quSL;N?NC6;4GI}S?zY&qEK2!6p1}POZQc9{+Ghc|A+dO-K6ox<| zNJfz_g9T*aocj7UvLZYUC4q#6%d-2*0cI&_sY?m(!iXi##~iYg4Nj|k3ZiO?wFnay zm0ovd9>&^Q&y!Jf-iL932zSWIN_xNjVnG8K9+Dnm$fPMx)OorZ@?(vNgw(BP zY7;YSw}@D;HzG{wOGjG5ozlTMSia7x>AL{=P&`5v&=vKWOH ziA5k`KrAG8b2CRGM(VvYaE1mmL2n%qF4|Z~B=u(jk%P-+i0MnE1Blwbs^K zk-|)^^+aQ(>GUE&9m0Fpp;iDecUo*Ru-z6$k+KBp(vrE7#f!U*tFg7t9KCBm1VmR; zi*aB?;Gi~bZolpMPzDA-o#sPor_MjJ)~S>dYL9*Nqp!Q>DbS1w%kGYEHpGKZt*xhF zAP`({8Zn4e>oKsLefZS>?O*&q-g)y){gO-IiBEm%8{T~UDNn!9UER^b9RWe=j(gF~ zW`*i!?!5D(A9&<*pMi%Tgn5!McOYV_V-OILMJC=7vgBM5SyJ~73r&t73$R5;fZudt zxnsJsF0L$+$mRqQ2^I#7>`4*A)i56vlwUWS$zhKV10ev6H*cfAMg|6(9fX$A9NTANyx-zH0aQs;GDE zfdE8Yk}8U|7O1SvP#d^QT}8m|&aP{BGXs;MTz2{8FZ`b8fBLIm;oY*a`BPu`%-v6Z z<)u%$0%ncFhDVOVW`Y2!1=a@8V_-;QM-OBVS1^QJlpVHta^A%<7Jw+i!1AnTKl{}$ z``&N-={t<0w`sDociwu-HBW!`iOU}44pIa>fB*^H7S=U96-g;$w>%^S8+gPv%*)P#j8X)>Iq=P!t z&3dY}c>XypL`u`{?sX`KhwE>A{VSUb=ZJl^JFF)7&TF3eyyw4wsgh%yo!d9guJ#LP z1$Hn4Bv{Wt1(~M(^?3Xk5a_`gBe)ju03r|pRrB`X>3dI|zIW=gvFuiU$`hZocWlqP zJEQwdhSR~puo}nR5yAp|94ia=NypXh{)G$w`rrJU4}bCVeeVcd^Ykab{!Pc9_N+(x zWI$>Ett@ED+Ule{ow?&PA3ePOz3|Xou$d^;1}wx9Kn{c$1_aDV48$Ff3nP&Qa4ATH z!~nz#7=Cs1xy`vj2MlL(@=<&!UM=cT%;XqQ{ z9YC!2%I*(7xcSK6P7mCD$@jiueEhWsUW~!CN(2Z(RAW5b{y&`kS+i|fmKKP8qnUH9 zz0bLg`*rsSk1iu4BT0ztNFY&yNFY-MB~%Y8fyoe7C7DWA=m+Rc`U85=gUs}x7a^0W zkW7Lqbx0&oWCEhe4gyHBi;O2- z>(-*`;ZObSpZw4MAOFQWAHLwCH|6%*Prvn(Z+<~+i2#{F3(UZR5ik=eF!A#i9ZW_F z?~T`vtH2WFs^n%YEoey*3jYuO{`Ft^t#7~M2GHH;PoIAD&h_J0wN!+sMp0Rj zP4qJhU4j$JgPAA7ObU0;N@}gzwkA4bKN2daWn$Vi(|zV^Xy(j(I-P1Qhr@b4Z&_l~zBi_{PiMk{6GsN+Mnv8&0Mae6?OR0T zIFGarL}YA+u%zlTuRs7InN%$qR$WSECU?KOI*vZ_Qen)dzJ~FT@>k?Wi zrIgas51Az=ms>qET)PcL2B(BblG~QrXR~>2rkwd6eMTl24wIrOF3wXpr-O_cVBu-} zW|``#B%|CdOcL&hnHZCoZE`RZSd*zS_b?_&Mu?pgsY0S?Wci{}UIxhwLkB3m5Dm?t&6)C7QZ?BZ~o?o@4WZ;=l{a1KlRfuuGSlP?}L}cDd5hBvh^X? zj~>1HM>pfY_D_H7hd=(tAAj>P$PZ;5x1;ZylybN_k~xe;$ZQ9LRK{sTSXq`(s#07C zj5j~=i9hgzpZf6Wv(A2k{l?e6^z)zpxd-bNi()qr!GNtpfDzatPA~Pig4O#l46VTC zV076?S9!2Nu=lP@AtrZx?sK30!(aHqzx>^=l!xMCPv3j{`G@a(=5t>-pZ4RS5L1k> zF|sGd!?W5QVdyVO9XL}93nO>N2PXw(eqw6>$#neVZtn`ZeEJE)~=36OYd8D zcbm69v4JElGPPpZV9#>zEQli@mQwfDB3#pY7HJ&j0Mctc8CG{Q6L2ENsXj{BBM%K> zVdd5v8#B`|2awWd3S=ALeJC#hHPf|;61fT|QE9DZg6go5+->GLZu?$qWnlsgXnV^; z+|3S$gNNHip_3FqvK?a#k3cGJh)S7myF^FkYz-tD1cVugNK19M*1D>mPN&1+7~y%C z*ILa+Mgp(vYQt=pQy?H^0`K47g)zp={1{`@QZll!_pVw}C4C8`bkR)U;w0!3LQF7G zqz*G+Oe;g6kDk0!3RNRACB1g3;jryQOU=tLx}L}<3BNIVgzF-$a#lmYj! zREFe_LYR4PI|Z_oDN{Uat@%Ddj`bI9Nhw8DxAS@Kj79T^BQB*B8$%W1>LiD%ZK8gAyJRN^s8cl+qw-}@)Ou>I;k#?udE>=Z;&9YM^@ z8ek;80Va_UW~nShs=+0Tt4K7plcE}+6nKM~i9I42#oP?sv#GaYo+jZV;cA0*ck?k2 z=A6t&xP#2ueP%V-xK9nv5iccI1ZN;X!?9?ww)JSu3x>4L1u-~ zTXS9HQ0{D)>Z3pWg|GhJm;Rr>{pBBe?Pp$Hs-3nV@h}Eh)a|_Ao$BFQwVqqA5zJt& z!Q|mtN;LX-Jq zy(h!45W)*97RR-*KnfEgJjU>%<il)(r2cIY<3XDHsj z?aNw6pKyF|2Ks8AGjpMw%ej|QgP^7G0Zg{vQX)Ld{>&}u@m$ODQ?%A7nV(=0ZoP*`;$xyhMwEhk zL^3OhvJkNcSeS!3JOT4%Jcn~yLCvCdkEG{oiX zFQR}!6^Sfmm4~pIi;@V-ENyKAtVKN{E$>839LXqBx3e4)@31Zkh2hh zRAgC}-a9}kh!&X&iatgywb`Cg_}ghCW-jaqB|e`vIj~{ezIgWDTi+sYbrIXQPrUN# zpZ_y|=9MR}?H&T+v*UTkvj7edLQycqT_F^ES53s@AQfIx(^+E9c_ zg;WtPA`lT3fJKDz?BD`s5{f_yPL!BIiSP|`BKR;5bD8=mAAO7-Vs4$pU=GVp1%q`U zJ&8#0l~@P?4iMlTL~hP3Hik)-iEzBU{pgqeu5IJ-fBoN=S0BGDTlM0q*CUcDlnW(ONHyGKh&!r;`>H5p!Eg9X9s17u6IF5vY_L zDAnEfy#-u|nK=(Ek>p+7%|}eLQIbseQ484$-g{pU>%Q;IWIpBZs=Dnv6N^x$J7+v! z#!0YnavMG(ldn=~A}qw@-LhgJfKrr$EJ9U#icQ7C0h&xnYEmP7-}`rkVVPmUl!&*x z=h8z#IRsxYg}H?!Y(&d|& zn;qQT!aQ6=FaEIEO=n|Xbu;Dg60SAIFdLZww(mP8YfJ#LTC~*fc`y9ijC%wmkDWvM zvaZ{Ky=)xH*wYZmNV-X4j?m-jmpzIrypQWll_UR$&(%eS`;6h;;!gZMfM;BqDVk z2^1nSy?e|bf=Wgv2F=*|%Mxaot4>b3^FXO}+4ildl(P2T%mx6-Oq(=4#cXSl%=!ZD zZ5Lu<=e(B8h$+aKVZ-afZM%E<^d0Map;(CDc>L&xKmWM_11Se?zxnJ@V}N0V)=(A9 zv=k6wH*34pl1Y3bf#Fb42ugvwwQehJZ99$qwBMb#rmubM!Q+Q|RYAb8=pA)EpKche z%SwW()mUVSQ|rHXy19GvGe7nh|H|t>@yFgDdqWJ0)A>|L3zY8m)9?M8xBvFv#5aDM z+nof5E+ZhKK`=m43dLl^q$*OJnYD_lsFEm4B@io%Ru;)(8>0C+|zgp(wah6wh(tDm0# zlV38Fr$-NZ-y26+RwL6Y3&j)FKmSud`rmr}@OT?{cXz6_9M*_Yq{#!vm=Pamj22*c)R z!~`L9M_m3k1zUJf5YB;MY$J-(x_YrVuogkMkN(=LuYLY=pZ$%me8t;dblK0(Z(n@$ z`kS9x57mRh+}yMjVq`&dYt7scNLSX_HX>qC>(;a88rb)Ntdtlt3_RNkru`x!!kNe^ zm^C7je6CvB=w?Gz6X2TiP?k#>HM<2f%c6+ry=Nm(Z|x$(0fEdX=bTSV0#K9+?Cf(J zgDG!_MnI{xkD)C0h0`JmOtw5NV$)Nc(kv0EntO)O5c3$FnVHoiGXG-M|HW_*f~C`7 zYI(u|w0$q7PHkm`UgCaBE$-3#i11-!sY}u=%}k5VfE8vl3j|HpAy;Y$$-Jd-iRp8f zQc^CMvX0){OpP2P5To_Hl7*)Y{`=f8hJr*fvYw?ZWwbG}otW7pW+#$)x+qf2M@&my%tz7^Df;cL zUpzNxeb3&N)^=v`7(8Qk!e{Ul%uRX5IQHJxWpy`?AmMI3kuhR&8q5;Fwx5RG0)0F0 zhwvZ%fzSNV=RXS}-z`qKm8L| z%MbjipM5v5jnR4|_rtp4v>goZ{r0au{agPByz_0^&I~3k1SaKS&a5Ju!E8_gDHUZY zS}LU+yHsM;x}*(?ShN&k77^7#pzPtv$w;!%l6cr&NI*ytHj3v9hlt*GQ)Rc_dr=*| zlZ|K_vjkn+VR1IpZzm07O~c? zELfD3$IH7v@cB>t*&qDa55W%DRB-dr?e$Wkl*X!{s`ch;U%UD0w;n!taP@^Bsc#;< zmK5@rT8EnmgBgfd9=-PIkAL#lzVy`*^wC{^=k)Y!?cjptfDvd80W{g24q>PuIOjep zzyNxH2CC9&;6>NRYfp8t8#BH3`l~Jhy+T*CNNQqfLCuwmJ)$=)Se4V>e_7SEP4g^s}7A@L$ z?beQ9Lak-r_oU90MT8R!9KFw^*-LFpf=fimFEw}Jd*>k0bmHK`UJxN0+uOE_W=^6f z%8^2E03hUpl|)NVuX#9SL?Yl3OiU7^&q5@TB+wEXAtH)EAAPBuxdQ1UnajA1bzL*f z&^-tlfas1`*8|1?acfOjkIP|T?5ER5@4b8X{F!ppD>-!i_-k*J!x1EC*4{oZ&pKI! zt{6K6hyiCCuC~#k0*Jev5V{^wSDa41H?AecsyLsRqIqj$=vtWNjgNi&aDBb+BUn(y zW!MNtMO3WPUVLX1IX+ldrKcgE`(uCP&wly`zI3+zypza2T6H^cIRfAL;y-%&cm7X! z=PR-`k>Vtd6snPy8YIpnr7{atLkbrytff|BVNp`iWf3jeO0TM=R3ecg34IVT0SO_> z%-5vAiXfYBjtFy`o?e%#W%`Qea zV(XUqeMBJU)?17e87`7@Iw-=yGifxI5i3DgWdJwhL)S5C=Yon_8a5FDDiBdPuOp0Np3m zOwXqPM4}~kNmWVf#^~9zE%(N{R2I)~p%zg|7AW_x-Up{G4CG-TMxeKruu=-K&3ud= z5pXI+iOBmT_E~t09v*e6M4m|@nM!8npjemn_V#vNm&1BA8>4qErPjLd`*+tSq6{#| z4a{sXNhbKNr5apV%siAZ)0;-`4IUhRrS)TvpM+ONIheMmke$F1r;S#{B53dp`sh*I z+z?`%H$5H^3<_*_SS$Ac2{NuA0?NVM%!fsFeNeB9YvIDH-kwfHnMfEbHhcQ(U%Yt~ zpZw{c7;e_=9L4p}V|n@fBh+PVkSGg8ZtiZs@ozr(dw&Dp{+e!`ky8(wus~*#2eV2M zsVs_8s1#;dO70H}Ymue0C`+kYN-fN!T3CwCFDOM3i9V(eBP)TY5^@X+P`JBU?|pPr zEoLK%4IkTiD?E(ESVpI;M~BD&dvqcOO9ba!hF}K*!32hcN6})|9AF_Wy6?8A+XruL z|KuO=^)>(KkFx6PuU*j#`uL%IO!P2}oJlx{4v!!C%?-Q9!0C2BEJyy-o3CNDlRf+L zcS6_4Kl2BDp+QYc@qO<$r0Cst67a{~c=O4tuXJm-FHYZj|D6|iFR?EE^f^lb1FGl- z6__Vw&&mM70s~-%vb%FIwuqb7Kd^ed)}xa00M+ZOPks8+*H_06Z_ahG@Ye2bVYVEv z_Ten*?#g=Z=c2kStBsKnMk+!~r}HUsp-gp6j3I)z^I40!hq)o9`!#bsiMY2$?CGy! zmNB|z6RE;9RjQk1{% zyOsiv>>6U`K$wpNIoun!H1iTy3`CL zUzaskj%8U8IB(}{)bmZ* zED;yY6!i3jk6{F4S@-F5Ivftnv~OEpHhf8J&eaDVy)}2^8EDw6Rzz4Bfo${ea z*v}g{xF``swGH3)^H6%YToV`C!rnR2(~c8^iLMG9Xa;kx1%zNGgDwjYXd9Rjj(xXb zKo?@W+oa0r_WbhhZaFS5$1T8W*6(hY2Up>tDj?BdI@!xFe(|?{^I!bLfASytb%FZ` zZ$-ZR^$))C?f2qXhMOBIcsaLt=WAd68~+);{VmxWi8{nWs3=Gr;37m!EJZ7c5($f{ zRuL_WYN^CUs+M&X(YmZkqP3KwM7-1`hgL!ei>MG7QZxL&2 zd+)vXp)8}d#$u)*fCd<_K!bZYti>6^fReyzglF036hK=zSTYCN!?lY0(6Q5t_YNPt zd)$BU<4>MEyt0F=pDYJ)>tlFGp5tJ5KE#3c?JPv=VHs`=91hE8Kl_>2UU~TTciyR2hdA;pYe3$%g; zm@bKnof**@NlEISMPh5T7K*5Q;BN3Lq%y)=AIHPh!>i--yOWeyKR`?g zTSRPTqN=L7y``Wb3*acZD&gKoErmt)eNT@t1a2-Y;CYr}UQ1-dR76+^)Ouqs>4NOu z(@@DGFwgv}Y$W>rE(|mCF`P(?CWw?_8>tTyVVi}qlzc-H?o5nKq-DOozTUPS8AM~A zA(CU_iCIx4fy~$tp3^%|y38F!i5;2Qh+wv*E;+p9zL|?;68vL~%tuI(e#XkCK`%E@ z5cx1CPg~7YbA>b5&CKU&cIodM8QbpD7#tbdpYC}8%wm4QL(LFSO-c=BR+s9Qx`m4c<4josvY*@rDGov|9^TI*645iO#1sihPx zMLJB zpct*n;@uIcO(qb#j{rru`N$0Q#O{g0hm|6mjVq=9&VTdIzWH;1_KV;C>Wl5>6R*E& zAMW4$(7y90|3ng&$uZKlbtct*>rhd3$~J=;HONqPtrV zAq?U8#G7xv_W0q~zxwsE>iaK08msZK;^hWaFd-d$yM=XH7f7MKVe2FU=9J+Cj96fV zv&D-Zhv4fqj%2X9(34jlJ$`Wb#@oGbtziodBj5I&NX-nhgMa{t~A0y%Dh-ir@fM$faifY;SJylo{vF|&jk6n}t zhq+sTscOlrQV{jlNQjuyaCUDduT{nvZL}P$hgst7sjBL&5z+Ln_0fBK_~2o3MTnqM zQs-KV<^h%C@8NKWi1Yb;uboNCU~&@a3114bEto(=ZFFHd91gAZjAKcHou}mh?q0OS zzk?5BdR{V$Qk00=zPnp0YcqZ++4lTt+NE=GidiomQoT1V>8+nZ8URwu1cGw@*->j1 zm3?p1Svh$M_ON_~K(z1s@p#-@8)FomVJ~Jrd@yq<3Pc~~iCTwCWGrAXvByY<3qZMc zByyMO$10_$3iG}64-ZOp7?DOFqRvtvB_y*U%~5FjvxQ-GzYLOeXh-K(zG$MveL_PpU`U!p*P zO6cL65l;>#!fD_6u%Hjy8wF*8Ti;p{0SLpBQG^hAoX@B8cIH}YT^~MqU0->4x7o5> zw@$M0_~twR@NfQ&&;8LKfAdfMbPEyq8T8g}zxti`K3e5O^7O??LSMNm`s~Bs`@4TL ze*23!-LMc*35XK~m{nN?1l7uA;i6#D99(NDwUkoJvJ|a#SwyrhODT1!OOc{Qvj;_4 ziU>28G-nW0^m1^|*C_`y0Hcp2Gg|9wUE1iakJ@`vZLMk7#tAp~Ex}|aYdnA;4--Up zM8GLH!U?lSD+6*Zh6f}awzJ8oZs%v${i8qp9q&1 zXe}ST_{iJFZ?i^XdP!I%gL=Xkw$ZDgjm54zKAF#kV`iI-{T8%4_0}Dr~YRyL< z*GqMmy|>o(<73@-QK zW*|yYvs}b{m=&GkS^;ZbVd;RYXP~=Y1<$ zScsU%C0;M3G_CjhWFP{Dr{fJVe`s`dyy~N8as&`5#^=&i#yhV z@Zn(w4=Kxoa(E0m@WCyZPqI9_`!~P%4-EF%pZ~djeZ^=E@f`Zww=cgj{29w>G%bsC zTl(p(U;Cx=7ymJCZrH4p5@2TrRJ9NTLf|4=wJfB`XKSsC)>>;Vbrmgjsmr>kl)5ZM z%d#v*wbnXUjZ%bAN@eCEnj!>cNl|G!M$<5X2w&aIyV+r};l8z2NAJC#MYI&&_QFz1 zIi2qaLd?DK9x0nAgCmTg5ft75b~uOtO))!y81r`v^Kc{5adY$c{@P#r%%^_x$!9-% zl&fbiZVnG0?S$WZarf|etgjqCCcZ2jU=l_tBs_ML!u5J-JMgi`^5Gl&jdxC8`}XmZ zpBt5^fPA)Ww!I6lZ@lsP_2DRsoX^|4@4k0_esguT#<^1!E({pL;DKgi+jL#P1b6rV zfK!Ju)NGhkCfC{=JFzo^vX6&F0g7SP`t7rq-n;OHPz)r5>t-sl?R&XQ-;PKdo{H@I zo~b|?Kk5$`eo{@3R$!6zyZ8l0NM8(63=omA^B4UR6xEW!(sqz#yA1Qdr zZSo?3MtIa(rdxvfB1v)^<`JGbR3ga2X%FJr0yow3M7@vc`6U1tHfko)UnKZh*c==j z$(@Xx)AMUif;!DT8MNiot*s*D7OAgE_^6M}LCK_yC1R*b;_Sp^=1ftSnrj4Q^@vIz zJ+(i>M!FR8=a6R+1q6}sY!0%_DF={YCet6&nG=ShF}i!CZ{z#BFo0m@T6EYLW2hD- zYON*iUzerrjWSZH4-kYU6?H(0$AcII0fuL;Q3iOi62b_5^dd!AGQ=^TBC|mt2Vd3{ zvf;$jb(xlIxXB&BGnx>PNtu4}EeNL>%Bma;6%QmfWlwbWXdQu8G!s#R5(QZJrSKQeoP z6Y!>(3e7OLh#2mf3Ny@#$gr}vR#o@blsTtO06XuLl}wmxDf6Jv2tX+)9Yrt-@<|0P~=Hl2Lx|i@*8T{+IuY|KNY}KYMUEylgM`t*;NS-|PKX-hQq@KmBlhqCuN= z4-YaA?>kyYJvd}sE&BRv`t-Kno$%}oUBN0U?R*whuJZ7eS3dsc$Ctxua2MIe-nR4A zVzej-C=y!(oJxt&wJNOJKBN=~fe8Z%v57EP0MH1$bi5i^AuAsq9s z4;BfVqNogpN=Zv13Mo-Zk>QrN1rdYFT3hRB=_R7(vqRG(+=FRW3$jS|G32oWWQf+d z1V%6jy^ZWRD5Yfji+SeLq)jR%>oYf}en`xMln$_M~I!oLvDGDE6mzvO7ax)?#EJ4xtmXuF2zHL8eR#i%= z`O;(>;Y1~oBoU#wgdBWd7X~w{aBDj;UtL{q+vetVS$c1|Do3{DNF0k!)vV>?Api3eRj5@#ysfZWaP7_rD(!mli*UlFv)x`sO6a$ zc+nSolmPTV3%^=ySX~z&%v%1`dLOFF(^WK*qnqM~K&d4n+=4*&pDz0_h$%_7^bjR~ z?gUZJT#9vFMHCd_67Icw%A!)aON64;hSj=6Kt-|{@jiq*0Ac|wsTx)F(5!H3+fF=c zDObASrt=placU~5-@g~Q0DOLM< z8@4;2j}NrL{A~8kZ-42RfAzCJ{!_30u^+poad3z5hXcR8_b<10Q^%=$GaR~&58wIr zKllZ__ibuTh*;H_B4cKYSXhWcL~9i-5RxLgsuYz{OI<`uskPL))TJ(Ut;cpy ziFo9IxoN2b0CJO73b1>?g92H^M3LKly8Id9Bmw%ZU-^fR|JLXKz5n#D+VR1=cia0f zKYHcC<9A;4fBw$1SC`lHAg>fd?;N^FaWp%h55g+ii^i*~e)=_j|E>PD?<}wUu!B87 zAY~>{VSVM%BY521+;J>t>_!GR92e{(_D)5>0xmP;Kvzi<*0Lfx!ci19zzS#d4pF}w zd@gb%uY(-fHF>yRt%)dSCs81VdCinh^Xx({rKD^>BAA7kt4M1tD<&f%d-_CpZ!J;9 z(MOt}66z5VTx6E>KxYx*L=J!$=2~<{U61Wa6GV=rQ?J7ik;E$81pyNB+2Al!8q?Z0~w9-IjIn3+R&6UI4WgttDkaV+<`49{I1|--R)HXH`Vlu-;oKrR{rW zm}l~E1|NwCDBK*g;VzAo`8zyMTVzWKFe4Iq3Keqb9J8`CRR_437$Po8vKi)@H4GqP z8j-JD#+;c5BW9fV{g#>!&5UC1y=XBTOk7lFaAsOJMo$PUbN1m`b}yoWOP^Bu{xhL{ zdOKRXWZ*DMPPLKD2@siBx$P}{UKRP^GUcK}G;39mZ!U16LKuP8F!rUW z@1t*fn7{n!`B#49cTXR_sIPs7wtn;NkI?ET|JYCa<5$*&RnWM6>HX(l9XLIBa31dL zD?@I!-~Ic)fZzF7)NTtos5&w;nOT&Av@D^_TA)g*by-SX>au95by?Q+P_!JDwbo@_ z>ar}0mUUfgDNCufmRgI7)KZEh>!Ao&nM#SAZzv);j0Kt@`4KVF=QF$(?Zb44bYl`p zLV!61in)0aKyzCS0{VW6aGw=S24?0GupkRJxC55Mb&i&x@GuUE^Zu{?;eYw#f8tNS z_LEQ6de|YeOb!G<8|y-*Oh~xzI=ImzI*MJf^)~z@(Y;IM^>C68qC0q){q83A8?Q1 zq=aE0-k!JRw8$GPYaaVlmI4BUY;Q$qsrB}*$z`Uoj5{4Y-&_|LktyluQ->lfV~jla zJ-aO3eEffz1}1EB@v@~SNhCv9kX-cWn+*%0WvRJ#rynlion#A$dM+gZfXMXLB-qEW zF}k_eQiho&t7<(cot`10z=(i~ju;6J6LTq=Ur!NAVN%iw(}9~^q9ecZnJ!_8`DCL8 z*xblTSbWAP&43Abj9KkRB07de#z-(niaRq+)xFm0G20e$&dz`%o`2EkBV{-fjjuJA zAw=}i6aLBd1qsjrxWpsP%5i1{2uP!Gc#L6}PN47e!dRANw4Tpk@1s^OwdSx^iV9y8 zq7kK(wzur8CW45Xjmw)iD-0($-g--=d@W_$x1yPp8Mw5mrg0XLk(rbu_t?fk=*`YvLcE~K`xkyH^aLTANh@DeO?UAZM zFsB^0)T(p4a%Cy1dutH^ilWtQcvzxdY1AB+4@oGig^#_>=wFe{1?#Qn=~qe}HhSx- zMOEeAk?50qw-F`QgI*!X_hz?yk(yyaZY~UjAOgd^-MP7@8>JSEh(0)TmEmB489avd zTI6auO5kc$bh+; z=%2s*;Lh8t4_1(V%l3cq;j`nzC!agYu?)rtCl21;e{s0-t5=Ta0A9a7e*Bg8ou~BS zxxD_s6=k7q$8Mb|UVHM|qX!ROj3!Jk?@rs^uMPLp%3{y>4 zCBg{g4kjwhXn_`O8)KLc?|a{GHV?F_^e z$a&1d){95#V&_UCWOZ{h=}_})jN9d0&8&vVJ$W5R``m;^lI_Dy zr7+V)dOK7#Lv5MoLzRtf%wjWs(X(qdv9CnD14w6EQOz?jB3kdboJE=UI)-P=b18*+ zYK0Mz$FljzP{_UQS&o~#pp79a2%5Rt%zWvijR={kj-8mlce?razA)O}2~kV!eR$Yt zgP8j0$x<+J_nu+q=@~g3kLS}l`KyWR)g>-`ODP3J1@&@yVp&$R;lnfgMKu=-Z@n+I z=9iqde&*?)%1by`kluTiCh;XU?0$I3NJOpK8Z{FS?<-13l5?KPFzKuTkmckNh_Ecz zBX=P7eP5QPlrqd{M&zon^wF~p#Uonl2#9JDKf@5_AVNf`HN!aXvkvdwh#7ICs;xDa z#Np`zS&m%HJ)Frk!*Gf=I5XSsr>A!~ZrH7;z{1V=unGaSFM?e@G79klF&Klj-m{1ZR>r;o?0cIV^WXE$H{&g0MiKz;S7Pu70E zy>t52Z-4u(z2W%ka8#DE_4e-DAN-yFJDxq2F@O>x<`fK34hTqsIWR+CgjA(yDXfKA zN-4{_F1j2J>tR_{%3)pCWm)TTSeJQKtZP-NMT=PxzgG^ozg#qyNW0@|XUHU%%R#jctD!!d8yo-066;cUga^@T-;j-fQ}~pWo7Y zMT_oC^}%)Yk8Zy9*27O-mya!N-&t2-7G0ja{_5+mKmOor-y*SI+Oxaos6xE>d1F;5 zfz)2!$n^pu^fvm?wSom&aOyscRk##Tuqd`(jsj;GYALC2)KXYki0fK=w|#GvL2a!s zOYtxdU!)F8C^bWJLsZB^@F0ig z%zkJAP&}M3Y^g-oC#JgINIEw!PL;OWjYKh%$3{c!b-YOf?hr)=DYo^QqK&I^7)(2Y{}wuC{Gs z;;baReD6xmbSPRMmx6-PgyMh6Z-n~16O076=2r61?74qPh z{`$km|LOneKlzjY-p{{$diUsI5o)h}@^yXvq5Dpq^>}=C*MIZF7cc7ZOylK?^HIyO z#h3p6FW}o>!(C%y7BZ4xV$ngN%%VbCP=thQt)g1i8p35+mUYctV_p)=vMkGS%_XBO zwboLO>snQdY7tp#Nf;_gj5z@y>%A%C0w!nb_bg%z^I^THXqRrLqB=4`wGluB;>d*$ zsn-Y~!n{*p3z%697cG=IxNsYTGkkE?cG5*H6$B6k3HMIs{cruB|N4_3{h81Ip+7R7 zzO}cPbp3F1dhYzqeXMu;_2UwDx;_-!S?k*0d+K*@9e(%+PE2_9aee&EPcLz|VJw}z z6oiNQc=+(qdN?eHD#li9d_lxo%IG8D`?fF3k~T6TPE^OuYt^J@G7&v*wR?DZ2H}T?+u?9X zN+Q3hQk02GG{uLuw*+50JD*YR*KM7Bx~h~sMdA{rb?e`Vhk1=@K(-=1&)RfPc@-uIlhZ43dSFq424W(b$#5v>7)qU349bXYn* z?C#~w)2GjF-ah@nqc{J%|KtDufAHV<3$!mQ`3JxDrI)|_ulJ`f)=z!BoNkU*Z|?jz zzWv_2T0V;CG@d*;jF0ZV_N)Kw#lQGv+`d%G+KA-;B|Hi%3zJHyh!!mila{iSdvR2) zwbs-`t;@Qu>tXH|>r%_1)>`XY>rzS)E~+Y`B07swD0LY*spVL3QQ{kc&8N0fh6%&c z>pKSX$aftRWvbwO>#s{7#^lLIt!w_-QZ3_2;SMG^vlRFMW9p`Zz&TbT4<%+c53+dn z*4w}Ipa1p$=zscS=fm}Pw(Wc}Iq;_R;TZP*`GCju!K!ZS)l#24KE3;_oEmOAJ<@)- zMv>?PTaXbKMX^daA~yPH5az4vW8Zca?R`&(oGemox2 z`YJ3eJo=PrX3uu-vA0G<8KRf>dV0ztVqF(=AD+w*9}cVe*!MQuEh#-PAi&HM>S&|W z++pT|M@X(^QmUyIU6yKQSvS<%P{sLtPXB?Xzcr$iBEpGxAtKEaTC*w6z*>0U}Q}W$qP`L0E)LitU4$aL`t5RLq3dB0|vKu>8B0byFc|M0=y zJHm-cM23wFe;dO*iGJmaEmMOqvi!YjR(Yg!Z1g^bUzhxrF${uzZ_Lw-W9Fok(#DM6 z$V9CKogxB#We{XFvAfr#^G_@oO&FsQl&!AHG~4mPZe0KS^u;?7eUO@;}0R?@PBp5Eo)* zaK?oa3yB1iiU_!{sAw%!wP;z2mZEj3%Tkt!L6zlDmvvbVwXRF8r6ifLsMaEyW<8OT zM-dZeMhjEk-!zlg5UGgI3Kw$~HkV=Ehb40%!XPjqGuQH*_XzVC<~Gb%&tA4#EzHs( z73MAq4-N`AOZ!RJAMGKM?3{?4!b!*BkxzxUan{kdkxclv0%X;o8+rGEM4 z>CNj`9th5((}OyW$J0CCd2;>q@c0vV>{p-s#Ob3C`zZlNTp-rNVc(mXIh=?b!2x0xLK4Cm z^pwHO`4PGgr1a4vlCTUUG-U4Q^I415j0L0&XqbL}B67F9Hq3@OST3D?3717Ac9z-c zHjRpG!$mlC?F5vygnJgarpB+yiR1Rj@PVdmaj;%sIP437||yg8P2)go8=ub?fGcw2QcAd>6Qw)$<^GNn?WS#0HFc2vv zN^Npvdy+@?ZH+PD;S`9_%zq~$z_SJ_W-{eHxa96;jd>QS3kdqGAxLwowh2``=(doGsr_2x*qDX)`X?doQD`Gvw#I;Lt|Y%GN9CQh-Tp zGV^j(wb1G1?SoiZ6)G5pwPNq^h%j0T3=})Dz&h%JVK_CEnT$lkXt?jjjijq-a!h>4m zVmXMVE~nFJsY}+-1%SZ30*ANuJsbDFw|r`b^p0eK+`?maxuXVqarf4*{3>3)fCa!F zL0XJ;Du}fj+=)npi*OOCMVBgdQ7M(nQkGikQtDdETFN42E%mT0OQ}mq4x=nuR@K5> zL`wQJR8^#?rs7tWRk)~BRTVBG`L|}8b**(N z%Tf<@DO#$QrB*E^BXXHD?o3%EC?C44KBGC35YN&GqU17E6=Pu7*M94FzVyX^@rE9j zv)#UY>80##+}-VRyn1`zzi~Q0kA4?@Ti}l$)CcSBx8LS5;#k*@zab9X-Pvx!HLalQ zdSIvCS_n>K->p>$-AEPQ#OTGP9ij z@{KSRtCs?Xi0G}SE^w)9U5dH)*0TjAn}YJl=6P2k`-l?Lr)fXQ0Rl;lggXnDTCRMWJO=uY~JF6_~y zZZcvEK<{mgaX20?q)4QJ!G^W1dH8a;_fh`;ePP(}$PFd;_xrdGGspZPhEH*?xv6Fj z2}b5bMtrvguNx7s%X-<_ee{vb*VMXsTr3D27fIC^Bj@xyf)ne{Z*Pjp2ngIuPCYyw zaFn(0s`>PorD-D)Ghm*+|JJ)D^$oY-qxXndmdZT4%J+TS_B}4;OF2U&83TZ`fZi;X z9{1mi2oJMigM~}c^l%It9zHKZR*yKJ&-w6iHc;l;5n+~njkL8bQAGe!REvg#n4~Bd zDr*4;7GcqG+PG+dFrvM@g$kJZX@gHHw(Sk(NYh3ev2_xl3QE~Vf9vhHfA1S#`JvB$ z?h`-o$>^{i?d8iCZ@)za4}b8}@$jmwt6Q8vUwL-(e5bwbi}3#Z^zQF|3Gcs+{VW&W z$YB74ShQLYaRIXjlT@%qis3{wgQHm2vMyy=bXn`Nmb%s@FORj>wbVt+T5DBZYe`LQ z5mk|@QiO|&s+9Y>4B=X|7A+;Ssq+5NP5usf;jT z#KyXD>=ESkP-=?xI3RB z;`-s07P)?KJ#4hrL{n~L9+7ydu%y;Mr%aj$b|6qxZA`EwC%?%pGbe*F&&^97U-~Fj zCB^6}LYZnl27ziV>EZ9ahr1+q2YlDzF|RI5cKedi5U0~gSo#?5)_Wu36l?W9TH7W2 z$=wqzz{Phx8Q^4HW}TW%O$8#`WNldQJw0RzD`_oxgJ!LF{%{D$zQ~+n6Br+35F@Kg z6X~MVXvK75=Mk6xnlXr}=^A~~;3>DAt6T1BEGlZ|y^niv>Edk7Bhh>73~IfNK0w(I zkfH#m@0wcvs}_mx^&i4rk{g^c@##tNoT>6BCB#~ir1kj?h%jRe195^&Q__(6Su9DO zXG8CI3yXj>(}CdTg(m9H{9ogyMI3b+pkxrhWP9U(rPKxVGY z7cY9Q+zEz)KZ-&JhW;wb~8}0((u0R{r2{ZkF9WkjEN!2fVEzi znpb047eL1C9hFhmYQv&$=Dw^4asx5WJCp|6d3zy+f9xlIl3sarJGIB_dj9YQjs5t> z8~n-F;<|z{gunCh?w#|ty!!am8(?%kz5B2J6>eT|IL)+Jm7we{1-WVs(4-7RrBp2o zv5HnzskNwREt;mhTFSCs@;{2^KULMLc~?r-Wavc~rJ19WVozK&Y8N~RGt4Kkbs{n& zV`735Muf1jYaoK6AYxt12u~zx^x6-j+bE?-Yo(N7LyNkXVI70PBqAneP=k?q7M4bY zho^^^FbgPW)9|pb{Od1%=ePgWXa3+He)rkkclOSQ>j$gucRe&dr2722Tvyxspab*O zVSMlsyA1ViG%Td=vcZSQIAWUB`W;JmeR(EYsO!V;zJnKFUHG4Xeb ze3ee8^RiTcwtZtx9SV!+upxzeAMRdD;aa!zS+!(~_0)H|Ew!3iYh6V$$oAf*fQci` zRX&f)%$LN40|1c-W&3g|JchA|TW2CSTk2vq%)H19NWYM&X#{2qPvSG#={%j>eJ0?V zF>_L(8K75YgWgnorb%KhOf%Cse>j}wEP3K*PhWlk?vce6W9GVxyO&yX81B7m(Yn<9 zGFt1ILYO~+#Fs{&evX{!hYbXh>C1EzA`+HvgR)&iG>c5~eOpvLG`-fnH71(#Psc{Mjo!_NGQ(~39%H_=LL%T&<+xUycQiw-tm@m=_meEz`W7~@)V`hVeA0Ch zRVsypnP@o_sG=yKwl$pZR;F#gEm!3epZye0cBltDzuCU=*3AbW`l}D*(~s+8As-vb zS3mf0)Ma;Yt^Ks$eCzA@_SdoP4A0HYV7ZJsxsel-Rsm71C234iks@iPAfjbmM5LCo zEVb5J@{%aJ)>4Zur3kaCEVUGseAN>HEqecvn3+^Xl|@)(!cf9oR3|DWTrP{qcT;hT zRF$>XB3g@7)v9{PEkkvki;b40YAtg41jHg*MKoZ{LBPy=A#ot990|-cQ|D-AIG8f^ zXV3rnFa4cY#Ge%AaUQ*oVN~^G<7w;Px!dm|Mj?8%oJ()x+~0rOnXlgXx4uK5 zRG=of`sDRju8v0lH#avU+}yD3aHr!TW6X)jtOpFL@QCw9!dNRDVUFHmj$v?+s3^64 z2LqhbIp@{}(A~{x*tovF8f{!%UAMi%qiEUAJ5x#uV-j z>blgWwVjE4c(&kVSW~GrSLe9oXXHAPM=EEdV)oTtYzoV=j$!G4&i*07j1I{om6;Hf z@P?U<(UHL$s-Q^~WC%ywcfIf#8E29&XJ(WoU!B2$c}Cl?drP+2$Z0r`CP7P`F)n&N zRZTtE#bTY*_?%N`+|vbH6H%LydO%i-_Z~KV-R_Zy)3k((WMU~UD@BR}FFG+2mc8wl zjUkIyQ;Y`5;jL(@ej;3p1cE^}Mn+>~aNqa57rxhjFdLYnp)Amz`5EESZBS%hENA6! zs-8w4eT>Siq7k0KUMU7m_Z*8P8|Fl znHk2nPw)D7VCnN~d)3l`>S><_vhE8v%RX{0!k!Ajh15LnXec`@kKB0<$7jy1fGwUl0~ znHSZ%ls3AEik7_Viq_}`qU<4NE{-0~Ab>r5q$exY%8B5o4{o&KqkrXhe(Ut%M-S=2 z>U?w4#N+tzfLd;x-aYq^m3W1HU5Q^`>9oQ_2H$Pl@yVl8zxBI@M-md{xRTpa)@3O# zo}X^c9n4x4W)OuLNbGbbV$p&{&o5sbmLsJ=^X8VXt|$bm7#pip~+O|{~|2Qv_aHbtEF%$tv7%&E|&fsm>n1wm45^+>uO^_WK3@zwbnD;Hc#pxDz%J0sfTr0MLCFU=veZP__I)Q%Ej9H5Almz0mYUpZYHPpm4Fd!lc9C06 z#g&;28%wPTsHsY7>=MNjmG!WIkyw1{OE60#DCwzeFc-;I^veQu0Uzh6KvYVpwH7TI zKY$GFs5R*$nK&R5GcdhxWAxESKAJg1qz^N~vmPA`Gkf^pK`oVqGvCpM33EDkFfFNZ zJRTDAB7$h4%as72Xp;Hq36HFCwPCq6r(z)oTLP`?O3dl5%#Mv*ehHMWRHB(LmjBGe zAY|EJDz%6xFx}~GZ(JlIPIu?N@2CP!$u@%+MDS=gx3W~xN+3F{Q0ZG6dxLOU52Hso z_3i9^r?o=MayYv8N7oOpUwI{fe(JD6uRfs9ym5D}T@c+y&^KRfA2{9R9_e=T!Mo3X z?{{!_n~k#>2*D&kD62pN5LILwfCy8zhpC8^QW9eoW?@;EMO6;#y40GycoNNXKVZ&@ z?~(<=!jwJ?&7FgpiG)Zf>9+a&q#A{ZN-n}orAX1ts;68*ifZzu8GT!8S!$+_a1mK+ zEk!T9$=rrTgjh*9GFT~6kZs6}vnkVxn94Pp0u71S_qV?O^>@Gi^-n#1@VGME&kZkb z_Tk!uKHA5#y)-&Fad~uA-gt1^Z;SBNqicEmct4-eHrqR8Hh9oD_rCQsKK5>c78Uf?U%q&0qhCLI zP}e0zN7;9jLYI7-r}wy&l4A6T=%c3*Cm;T-r$&%R(9BkvzAiJ%H!o*zpKu}+!oozg z*2~^tBAmrON$omjOdRv{Gp)f}ZcqB@Q4!mYP_ zc2u|&jquTX%8RV`OMM7(smiagwU%Kx*$^%wz4zXmnMFo5_m=Gc?=7+s zz-(C-VNn)$w?6(YPVet|VTcL~4@)glzBU=qmT6o>LW!b?a%!>D^IWtzJWK8X5>2=7 zRBiXx6aCCJ|DtTdNK9>JX6P8Bk8W-mR+9|=%+<(X^U-sX3-emb1=jTMMxZm>$ACy`|if4{kCD#BOwzJ=y zsXGdrHScYh)vFbYKtLjP-Vi8PSGp`92Fr3h4)e0CtQA~FYnzRCUwkwU%lgL0Ahoop zM2Am*+&_Lz4+08j+N*wh`1$ytQ&?}+;>Fu<*@y3ubvFYG2{DPoh*M7@Oq`ZTEhRuK zN}1EmqAax*5=xp;S%kT2NuVhaBo$GWqO2-q3Tas-SB;E#;9Rcd|MwSJB~`bSSB}g_>PTDXX-)Z!S z$fc|8{p(-(lGwSznBx>q~ zt@Ym9z5$u#7jw#CPJ41<=`%bjqitszZR96lmAsT<=58RN_^IEy+)TKPvw5!O&7nHw zwyIicDMj6)_nzFayC=mvIrE~eHIE6nY0>XVdH-83jNUALa7$h8hv@vdMEK~#dL|zu zV*r>Kpnc!(?(X0dr<-9Zk&q>&=7%mhD*1~thwB{1?pF;~(fn~1NrmfVI7)u%q~cT1A|k@`1_LpR5P?auW)b(6&y@eAe=qqBN{3GJI|M>&{afGo zx?q3uU`4;nod`?~(S=_+KR2=>gHf)o_O`dXXBa!y#YTJi{`&yxQu@}s^}5too;+BW zaz5P-A3=el2uE)yf~u*(M{CoOK03nCcOas5pu`A-;~@H2^i`E7%TVubU|Nq$CZQsn z2|N>F=gO4#!5H1mfm{ppUdal;-G>c;QgxaWTgJ^1vkfyFK-d`B_|{uXxOI#%dMBb% zYBGgBOjwvC0fS{-lCz9(8#W`ebLS$AF~y4WEKN2-g_%cB8S5n@-7Lb1$@;+MXbg|k z(4}HHF0%Vr(2Kki!5_k&)oQ=AIwrFN_nnO*8g0N1fTyLS!OjE z@-e0~nRSe@owxKOf8Q4dQLu2)GR9C9tvY+1#<<6n(t2XaL0uwgMKl4pwzo8JL`2fL zpy>^OC(|zw(x!1GDqUrIpJ+@9$0zVGfXBz-d`Jsgi(3pRtWJUm2%?*=Ve z7J$di=FL!w))gcCw6j*A5TuX@nWm3^R zmzgJnElir(f;^pAm;cY-lI>b_zf2@fGRd|JNOc)OScr(gAYm@a7cz>95DB4(l$l7V zIRR8rC011?D!B#gL&2t)`eKRwW0uutxoRY~#BFOIc4?g^0?B`bw59?|zk7rh37v=k!l z-R^ND_aJ6BOBgEkiaFJ0x&7!J7YkH^Ha=TdJr}j-;6(-Jk zfAlfmUqo&Z$nuF4I&!X+!^Rjr-}t@vxQLPR4#`P84PLnu3+Jamkw$Ndp#nxX27;h=|;CW!7{?+uHV zdYKHzmB~mGQN%PGxX+m+#x7!)`ju#`q?m0`(aZN`|OD!o$N~CDmMDAu{ zl`>r#NT%4${T^pb`YU(R1PzI(UdpO^Z=;V|7Xs?CXweG=H_!e2?wBYknah1flpKst zi(iThr>;w zlKWP|7n6e^xlqhJ8Hyy+a#)i@w(>IIyxr;I#RVdpx28&CUL)V#JZNq^NnsaG!bWfB?X+DV*0G)2`J{_- z;q%zf*3a&@VJFyT-N@HhALg3uZgg0meC&yPIJ_R#^ZB&*#t;}CWGTk&rb7yt`^!7P zaad6ZLRbWqfQHK1l>{Srz#Hg<2hN{e z61CQIT-~?*A`Hn&xah4BWidluuQ?jp7(H!zqmL;q$;h8!W|p$fobg-F2+s6@cSPh3 zA(wva`!c%=dYuvB)6|wo^736AEYI!89EV&|0ptsrU)VjAL^%+M;2u~GU)BYHn+Z#X zl(g1ze7TQYOy)cgiEw1a4j~mod1Z1sk%<_HG0esg$?n)pz-49zVOf?upNSMZO*paS_S!QfhXNa@L#&n8+@fB8eQhM{oU-zcd{Zxn`!t zT13JlJhI_4SG=Xx+;%URPhPh;91i(|qe+;T)avDAcqyp|6RT*t)0rjWg6MhpOo12G z;^F(gCn;@xs_S|mhzyrhVcz%Vv!8MrK{EpsCSV|Z<`91uVuD{wDDMkG;IdbcFqf2_F{=vGys!XL*2y-KfH^1# zM9iLTYJ>=zxj+|7ZA^A2k_~6~^Yfei=JepOULV%6@1wWFx}3IsfHw;lWiIZJ!_s_g z+Z``e*Q@<>$MCw;wx5?nDTe|f4}A2|^Q)_?N3T4<>5SIPTERdJFnXUrYZxGk5R7c} z-k~R7?(B)t=UOAl@fu7BP(9B{WLR%ReNjc+@5(mNs$DSs!ZBBJlfvwZEkTtO^POSkgQ}bvEeaB zAC_jiT*NIOKO5uzfy|pJuZ?+#-Cs!H@R%A3W+F}^A%DLXMI>z|k#%@JtIa6WRI;>w zA`*#&&(ze6L(K~=hmZ`fW#TLh6_K{Lq$~0|?Y*DRXJN^P(94B4_m$*#d+(Rbiws@$ z@W^_IT!pg%Fp;{YEV%U1CDD*%27tEjM5IMq+goeNmVe(D#h$eQdaJTyoy?q0FE1 zzV9ibZ@q8(p2pGC12D6jWgn4>0!Yj!E5q!vY~&f08;ONaX{PADZOoja9lqo?PtY*y z+QSn~BBE{EGQ%pzgiPJBfzDhqI@+!cb|DcOO^@#of-}!8N=!KW{*At$H{Bf_-2NIUY$0 zq+&T>8|~(NSgu<4=QlT4>P;UX+@7}HWYJ#gSDxQ|_2#Y}4!2{M!pHRyn~wbsF)+S+ zI}RT~PDGJL=bT?IH$=_~n8YxtmNY`=P?K`)obWH;uM$td;R5ws{uMyNh=i0N-!IxA zOo|zxnE!e|C(UIDM4YPzm=a$i7A~3^Us9g2hN;)e2uKEFZkfy?`2`b!S@N-F63&KK zA`k^}rf^R(Bj91I9AljBZu{6WwY`tQBFeSxQR@+%5Yl@fAhpPG@k+y6Yi-}!Xzt;L z;KHPM^y(`Q4hJ6g%KG5p;Qp?Vv`0+IR6ER$DY<}rEzrPdT83QJxOG(8wBB3V)Z;<<}! z(V~5fK6--w$*$$=9ucY0Cm>T^dhc0wAi@zoTRsC3vA0IR;jjXTKx-|hy%~stsjXt> zTFbWY=`&BtHfMHbZoTIx#qS#+L^TuSa@62Up(lX4EYt2*%LNgEnblI=T~!F2@vp75 zj703M(wG?C60JwH(Ga9X(_@eVasqnq%d(_FDocZYUtHdQ#b4jM zK#3$MT5HR?ByH8&p3a8!{a?ry=1dR~7UmS5ra6~pnUoN5s+$3@N=CutfIlN7GclN_ zLPna;0b&xC-n#OPm>1Eq zRCo-t^r(S0o281q!7U_qhKWKv0ocfapHVYAt3?OjRlXAiyM$ z{ImH(s7n==r1%`pVay~&@`5C0VM37mfOS^EfG!1O7=|j`4c)-RMPL9il+i|FCg6Y> z2oQ!jf|tW_cYFWY^RImMtFOQL@hyb3UQ6l0&v*OIetzy_6Dfyk*3CP7wDSfx#$@{g zp(25q7MdfCxl<%qH{sBH+jy3OP8C9GxhA@u=z{#d5W4$6b@|PSawIBz`LOq!=Ik#^ zbTiioTviRFj*}R3AI~;}tVf=z2=IKYBz=KXnRWR^W|=@SaelM+5~);1=B@SnZYcr< zJo2Fq4;Vl~K@=o}2gmwsKh@=m5dtC)8qUz1ZC!x^U04{~@cpjU5$47gust z)|!o^WMw8bWI8P73ZBjky5w!lA23r4OV+dREuAh&QszLJd;o(9QI{nH{>+RoOalN9 z6P0kxEU8j+h|Flg;K+;@03u@US&kQ%3=#ltDTloO9M=2T3#7V8^hx-05jA28R7pe0l$(P?_m?Og7>Z|~; zKu^DuO%pd2)jo#XSZW1GmHX&nBLkfn@OpxFnl#IamU-?#UCp%OBJI60=!M66Skr2rcJ~Z2E2V(o zt*J;Uhhg|dwXKpr9Z-@~%5x=+Z&R~R%u+g_Y4*U7MZLkPnj1cAg2_l160-V?> z=6p?Ye|+N7#F^uN#+3R6XG*?-Xx=7t;YjI%Leb^CzFY#6+)VAlg;@+Df`@0N(dF2l zk*K(+5)zeSVumx(cX<&&g;^+FX@MZ7H2&plM?g~C%>4V~cH(jg{l1+hFQ#xr!mxZ; z+j;xw{rCH}31H3sKb-wnux{IVo{4>Fj5+^*t+nIHz(EEP2vT4IBvMQ!DYB_RQ7u_g zDOAf6)v0{xJ74sbuY6}$`9{96-7d>gm)w$?O|=+Af)bM$K#?Fo5P=5=z)3rQA z5yFzcezHc;7@F^0LLWSj@!?!50rl2h=UmGt-6xpmxi){6gtNvqM-CJb;8F_!_R-Pi z<8_*PQ3N=67CG}Q?$YU)$RRBNBAWY9&HkdC0?{cwmd>Cw0hw9;U!FK#7^(rW+wC$4 zG9Nj@@JOR3KoE($57#``B*$+%Zj|2@fV98H2_I?AYGr_+o1yPFv|#{%cIB+YF^dQ; zlD5e)Iw9#iQ+o~;RRN|)+Yq7F1pp>xC88veDJUSob4{PHiqspzfrOYTe6j-b6qvW& z{86P$qHfG2TyoNNI=bdq%ORL%hQ6Am1<)rg@{|{`^h21YPh5%+k|Ip|6AL3}kr6ZI z9MCNiU6kW5H+R3e+yG&5kK=L6(P|!9Z7AM6))0*3;M$D{>O>=e`|JwN)32$!N8VB` z0t1N!Fm&`j#`JZ7@j~S`0v&Y&DOE@Ju*#*EE(Jl;F_AkQ0EBsvF=2oiBY^|BK_5UM zT+eUcrgi=GPk!=U-}0fieeeUifVv0bk?^sr6PgYNWQXnYpkYCnPZbDbVv7hpg6C}> z!j0hM7(qDshTvqnO{eM2!kRB{z=^o?wcR407{uvY{*zB}oN5bCn@4Vvr?nbSy9MMO zU|wg^$8{stXQKua>PaKN(Xa7j&B_kJ@YC}{bLe%lKN6CqgyU1QxY3*Q8g zBa;R>s6a%U6?U?<=4vy@Y@^K1I?K911MjDgnI4ZZhOi)`nW5pbRs?j<>=%|&Gcg?& z>$+ytff@fJN$;<_VKB3Ks41f$5$2JB+1!Yk5XVp=gVXmiDKSU{ZV@m>nyJyjOA$9u zpK@N@a@1Hv#?S}{hgwUX6fHa;N-2E|i2O#QpKJl<(;Yiw7O64J-ry*u_-W>luRl$- zorsFL2Skn_JUk0LAdnaWBd;J4;S>llA5fgv2!!~PxfnzQa6}rtNhz5KthJ^sYmpid zh-9YeHVh9#6A?!bfUG)+>F1$*h?C4?=CxKJ7(#u(5 zmCrr@(GN9(wTe0zz;N2OR@OC!;^4F0{`lsb+7%*(sz6{u&`@$&Kh;CbFWJM`Q$U-7 zN1Dw%=Jp;ZseG>MacV9*T_bMRUz{IyUL^t`SMK>5&+84~q_9z({&Y-fBbz&8PQU;O z$${`%LC@Sn>sYmO1{#5*feb-Z?RYpWwIbr^S`aObtwf=LK#=E9A_#M4 zJ{%5b`yEnBgM$bo!rWM-ZH<|e6*Nb_z>(;{d8D&^0qG!owURK7EZLJORF6Ena80GTvX)47Ji98VAtL|``h0W|x`n%z4f6eLFrW}$dnA}%R8T5Ipnda@U{TZ0s+%)H&?m#phlljFE zAy363fQb#$DvhTTcQ8hU?hXv)){_g+W>Ns0PAN!0xKNW9QF_ zT>v!eZa_?o3PuI@x6bQswL`1>J(}uJDg}@LWq<4To!hsTQh+5xMD6-$T}z49daX6_ zs3a^>5YWQVFw<>g^l5~o>`9L#|9iOV)EG)yr--s*@22`20nI&Z?(0Cba5XnS)eR8L z_nnw2EwkyZKul{X&k8)qnj;+w4#1JnXd=>~fI(8`sl|*%VB#rf8b9AqJdscH0ZI$3 zB%lGA2+XGtJw{)aC34^ncpA4rM1Vu?C3HfsrqjA`G53@)<_*jP2}_X#R|JHVYHCc( zWwz3#k3Vfe*|2o8dPHRR&-4UkeTbW9^8yGlv4wG-@=p#Rrj%;P-7{R7Y`q-z{73%z zkBy`tposJ_5`~D2+B-vu@ZLw_0o&HhGv$k^AR&=QWCT~ZePHs}p>~6&Be0^u6zVOt#hXD?z$*##0N4~AKNItc2x>1Tq_B)ws&P+-v z5YhXf(?i@^Crm26rGGc8H~;}1kZDR3%x0Pg1i&ygQ%yUEP4?sz07a5YLN~9_y4%gu zF2ekxWA0>#lyFSp!bNPfQmgl#W-tiUp+kr5R@l|nuSbNQ6Tt=oh0(z=h#j5XRx$y< zAouXQ3mr?j&Hjf^@!=ps2nLYK>;CMVm$K2-C%^dVZ~e*_|IA0?cFx=tOv_sjDB=k3J> zWT5vPtIEERh^rp14iQin;k6)b1OUB}@OIqfY^MNRDnJ~!Eo8m8dsbFyTQ9rQM3;H= zo>3JwEmCs1G`HP;-?kP2rEp#{0#aP%m^5u1a$M9qDY>r zkoxE>%t-k%W?Yns^Rin?5n@10^c@#LL^bv9dH+CwJpT9Iksv#_e0~H-ybxv)4&oRi zBC^~ef5f|G9j4(vr!A2Uq{_4P7n4=M%-u&SX<3kWLo~>MAtKKHkVO0@#}E+bGnQzH z$R#ck9_Bt&YbjY;~H zYB3LDBI4e*TuZ;<4WnkD42h8Dsmy_pJzQ8)qG+wNFgo2ND%?VK5Y9SZV8B2#?WbWJ zA|-d;!_&~lEXnpLMba&KJRX;2WtK7esWpd&sT4M~44n?u6jAf`r>cBv-5{g@SMXeq z^MaY?1dllpK}gY)N1rKwLPDXm?l6B~swz?< zYlS8Y3lOnwTd4~`BnLjNx+&T}AD%#!~Hi z97ca4fa+LQ0SK_{aSE;&l;?O>2pzHRu|BsaQMl~m$yTV+T5s=mYgxvyufFxx>u`GpHrE3Yb?e2M|1I=cfw>%%tayR1jZNzwz|eo&E(lX$up9uHgV4 z=6Sg|?MyL&pi}p7ca1QjX`4v}#X|Gz!SE?)=e=|O&)nxSrJtnedF{?z{!+{NZn?Ez z-nweqTdd2>$uDIua#2~#IK2Z75WxiXoVTa8X;3)Q8pqJL+RM9d`rrP|kF0SE$^zFN zjLNdW!JsLCcWCQ!Zm6YVe|-7r-}&7)pFHKWb$5Od4v!yQ5ia*`-+tc*-*&#PbzREs zT|XXx9Sc+_XJ@+zl~SAP<42GC=yg{Saow$90}+JF7|PiS9)SSnPROQOmx_=_euFsO z>=6+mL2aeh05BUxDj_<~{W@RItWC)ud>{Q(%z$%D6p-s|<`uF-Azv0IHqWdBcsRMI zl$cA7n~6v%GE$U9$O*8Hk#?(lI8Y5^)UW z$$1nKR7yq6hz**0T?#{@?K4ZF37%r+Wsxyd$4C-GBr(vul;URT5Xi55 z*eJF1HV{DSY~V`DL+>LI#6t%HW&@ymdOee(H5;Fp*xhR_00a=(AF|XX@3twRjbTLC zTR&mW!rc-{#w-DmAH;8PV>XgzlZMOG_=UmD^IxvDW^6}F$sJ_$5gr~vC){Q_ta?`f zh@nyn1wcNOglej8fzXF`9Tjm6*-M4%ZS>=kj+Y$EIT&x|sl7tfj6+ zWL^2pRRYWiu@EeP=Kv<4{=)s|F3KJ)4sHAFr$77XD{tL@_PJWi2Kd5m|Ljtq4t>0h zd$;bwQCjrHfyFBlwAZ+0T5aS5raW`{j5)GFK4noHuUTo8JnY4%ZA1=AJO+Y9cWAlYE;>gHd+w z`iybr7GWN0Gqs$-5eLi(>42<5oMTDI3<@FwLvBcb5C}n2MQ7CE9)9Qk#hp95_3ApV z@z6V$dbU=*KCJinOrjD{pqn8$lGhcX9k+2T7tdfR)EFOH|Dx`m?r}SV11dMSR+j~w zLD9P7#p-*9iU632wTfV#IAEJonOTH9BGgrlIZIT(aSfyQ&Il}` zIxvu?N`a<2!5Ez0`8-erz>M&OJ75N?2_mL!HSN;2uIrcvAs>CHS>{Jl&tN9CnGlYY zM%+)}MyR#qX*8DuH+9EwN6MI~#5~G+Z!Iy^W)|Uqm@p9uwbtHyDYdmG%&G3?{Ox4U0m}+vk=9!+HFs=?KT!sibbdt0GE3&IwS3cf zS&D;&6{%{bW{6CT!b}{!!Qt|1^u~gE><{0#e)DO(b9d{B9nP2Y?dtk}{>T697k}+H zZoPQ>dR#wx@D!9+UheMC?(O#%b-g3!fBGZe{f>8j6w1P|I0J}-7#M)?t-H@Xd;f*q z8((SYPp_}8o*q#hhn9$2UFFHut&8(fmhCw9%dT};Z{3Eo9g2+Bi%7cUPbYo{XAD3G zNTY&>nW7PR%7I#<3^Oxpee9Q=PgMgW`JK!Oc+SC8#=&4p$bfM=tDnT`8~J%&Hoj(0 zf|=|%O|9lmGL;E}lu;sX&d6>#E1151^8iE(J9*+PKX&+>AkKl|X0TAe5 zNuvmNvnb1QcKgNR}+h}R1cgAp=H73cuNfsmI4_9T0-eqgBAj~;*GSAOGS#q0w@= z9kwq$eyy_qi+}TT|HIGxtDpJ@fB#4R(hmbRrgDC^Uy58GRAj&GR)pxsUduovRZHa` z5faCs8Zz(7;cl5mDUytIm=?Jc!6MIX=wW7=)^-TBF=sMv%ThhuZJzWI2_nobKTiHw zi5UXSRD@3>%!%|MqP&YN%hG!{8>JNDlJks+$VpVh$y*fxIL~&=vUo<#W?=!SI?p|9 z@~sIbkKI($Nw#fUs;5qnvj_+X^e`~+)bPJ1Ok$cpF_C)t9J@!BumZwv-Q_}IYHCJE zXZw9?Eh&U~G|zQXRckFdn}LYL-q-}NS_X%5l*ht^WbP@1SU%q7C%_$!F-k2G-B1w$fs!e5%B3UG+4-62=@9F|jHVMp zHMubX#B+0w$mkWFq?Aa}5-bD8Vs6?DnTC#aU9;#S-B$pK^Z+U1=DCruNE-VhLdQS= zB&xMsU0pNH7?`QLnXq*4wbbpnu`mSoF_^g&*|uI-)JzJQ>b7kWR#?_^I=g@S$n=(W zx_5iMbLYVqU;W4b?|=43Z@szPTd%h3%O?kbTCkq)>ws zgCmK=a6~@4d*@r;_rc%z(kHj3um0iZwx^E;!$;fKvyZ&vxsN=2^WlT1yNfd<*mPSE z&+k7+=eIpxtyCZYFy^t}J%9)VnDe|nts6R6O75L*mJI^KhD9B&P5WYEUR1R+7AG}R zcQSW24|b23Eo2xoje%2Cn@+Qnwtea|I&C94s+#QB$bWSbhNsM)fu>Z4ax*e@R|609 zz|^j@%RLqKN%4WmFd#rc5P(6#KQQvinSU>V=WzwxW9wHR`RGSJ{vF@Wj#ZBr=kli0 zrE)z#i*~hly-&Ub!B8L05{Pj9@WIo!zH;k@bGdyNT=bR4_SwhF)dJT9D+3AJ02eT` z;k*za>C;1bzT$a>wZ8eqH$L}ApF6t{WJaJWD~XJ81p*g$3j`d8Jv!)@e)YF@cW;0D zcYpNa?!Ize%HrywP5@VLJl5+YN7N!%c#KBEb&>73N#PrRYI+ihBw5+H3?6CWrttM$QePJh;`0g^ z%TjYc*tUrriR{cZpR!?sBqxvE(!)z9Hr&>>oTrr{rPSP5;{*^+{dvA-kkG(6RwyF* z!!WfJ*1{nxl~gr*`tSs!owa=)I!5p9CKd-1|3Y{gIM9SGXC81O|8gsalUX9S4Rd!3 zGt;5OT%-`5Xlq2HYu+uARglBPbn&|R=uI_* znOSzw5{a4j);(Z@BFThz4-FI<5rGWU;V=89>4Kc zxSg%|;ws;A|G8%Y_X8?G-$swXi;G+DcqfQVtFs3N5>Rr(AROEwJWL}j!t%VXuI8TA zG5P=1t&gsz7G`c1Ztm)C;cDg)mMTb0F+8Rqm~#m_2^Da1-U3d~)QwSVPNMQZX=g(q zo9e~M34`+^o12FPm_dFHs-~vup&p)ZTcRvuayop9A93;x-!#RZq@272d0>ooerNw< zKlp<$-@15qDSCO-ryT-8Ds;PF))$QL1&RYXKvx9kN-DlSe{28t7t~R|^4MQ}TCW+j z!0sFzKs&UqS4WV-tAHCEM|cDaNU?!mdFAy7Z#>d&rBD$(Ts>`vLlt5S>up>g-82}N z+vk7qxzBw1Q-5F%-AtCHE-QNy9ix^arR3)KCzGWx7qG~|k%$CSk@&8835q!%d&)docNJ& zf`qGDF5hu7O2!PeXBKZFPfh}_t?S~a6WG5Yc9>1zwWhtKb{2ao>!FaMfw`Ic|~rgy&Y9YsW(zVP|4ZkspVUVHuZ0AKE} zSKH;`!Q=WoEa0%U;SrpdBso60eAlz@{NMe}pSt)T|8Kwb#^)Zq^#-l%V9{Fv|G+c1 zzK7rS>(|Fmf91hd2Rz$5F8jB={CL0g?J5y|4&mlRK}Zu#8{`q_l2%tY3v(apB;c;C zD;F*5t7k3RC^~cqkrhv-zM8S3iJMtsi!dC6BJlJMz|<~o=B+1x>`lJxbY{45q{Zoc z6A^O^WfL$KIw||E{`lfdpV^KdJl}uo?X%sXW33cX8Nq?i%EiSUs?S(m;M(D} zOL}Wy+ksT5D|Cf6fI-#@2p|HbfOdlx-~xsLkFTCI=x)}p8le>z7;Rm}w37glIQZ3} z@fZ)DKKaw*h`!P>%F{vpL5^^5{!kP0dMUlLUiEun|Qbl_2Kp`Rlq1sBRM5n2d&&+Qr;xil`9+5qR znaw(lCL#U7c@QkS5|IjS4q%uI$CzIHQw(7KrMTtySUXY(ix z!eAEe!HiM_5wqJhlaKk`&NCMCr0(A!Lvlk6PY^yMK_Bt%)$xe^l?xwaL^PPl<1VskI zDM1qm(EGsC!9RC}{8Q5QtCJvr~6Tc348Fh9Urq6sfKErPkJZIup`59T|U-jU;Ohw{*(XB z-#)u{&VhE>+jV>WOK*JgcmDma{?>1P_K&{=$96TY9zT3^=fNdhoP$NS&p1anB^Eer zFTDLjf9*&9{1^Y(|FvB`_3KNyv#Z^R`7Xr8_2pglyFhThC*rQ<;>Gvk3opdwV;{z| zZY2QFBD<~$GMAyw6(EOEYN{&5!Ys_k=)>yPdo6XSw%(UgOl%AtEJeJqdw{0s=ji5) zv%?Yz!I2RCgy%?!A`kTbwHSHMs!p?`$OTwFZ7y!H+|9Ur}a`{l!EPanVc*6zJ4 zzGvnAi0%5C1q)KR$$kML!x#qeuq|&6v;|-RB5wyGfl5#b+7YEaCz9R?3-#ke&w|Xpa0CKkCzYa>S=p=DQElh z^K&F33aUhAb~u6>1!RRSF`D6MJ?l=*jSwMu2Z1MwloJsIu!yMwpk}Ior&A_U*q4c3 z$Rk~9$P-m5m_Mt`G2|}dW)XQZ!}O%8Dg~w1m8-3}K|u1r()#29IxL}+5TL4g6=k9f z4!d_ETt7oUFt7I+|I^yY3c{2TscIPk!O( z2y-d`kmFf%Geb(_#y7ZOAfj82i^1KBl%Zi}MM~S6Na0hFR;t#$k5bFc#gJJ}T7c)* ztV3%l+3`z6;b^L!NB)x{oo1K(s$|v_@E9Y)0kD*k%7lnyt}v7LeK>$2fFp#*wry%g zi0it{YS?f$M}h!gqRE~-rSQy6SWGp+#mN`TZNMi3QqYN<+q#c{6 z7T~4sO$`XwpkMy^fAhW%ebZ0;^}l}W+53ary6#Ke)w12bxci=WzwP56|Jcv|%YXGt zKm7~i=noz|dY2Ap4YneM0a?*ekZc{VKQ0G->%sNYLz7otefq~=eewC{3t&L(A-?#V zzx}&kee=0*{WzX2kGIjgpFRKb{r7$ITc7_zj4eEf00<`98^J;`hyuw2)Qt>Gfv7}L z9onTMNv%3;3{$hA+Qw*OFp^L%1kwqaNSH#v%@qw1Ba~I3~{SwzlEKmr&StjFnDIgqO zWfXt&fKL%%fm2x|ECLOI_plZ{yctA96)4tSrQ7>pdh+1$YhU{E&^{KsyxP9+2mZ`| z_uu{RUwZx?BY}a9vD6iO95+9{{^~#ffBvKX#_J2jcG!^c)}8b6;4u*NwlM<+o(9EW z9B@7sh|*{ zTHxu8Gc~w5J$n)sM)nuXY2#_;GbhZj#_JGL?UKw zrAV5U=lmmQXbGCTA*E;bOVt8ASdtB#u3{F+y(+C)*)x!X(QRwXQcp)-Af$wpq~#YQ z2q8R{bxAtW*S$!5z2DGbW+oz4N@~tbR7!ETS{F6#V`OwNw_E^l^W)*j#C2IlAEpKn z>#}UeW2VwF@s$2(a|MK2vq&dy+G$jckeGNj%eR*KzNuHw@-;-9*7z|rJTeqhPW8g+ zdmBT;U6_d}e+o&k5ay*WrBpRd|MJP%HTz89^uFiRh$zG7L3lHWK=_(YLzK8N^Azpp z+!JyZg@|}O9?$ptfSJYT6Er{hz6s7uaDtAJfKNEhR?Y2jeQ3S25QMLbJbU-f3Wb99 zz*n!o^+P}Ym(HGjwr{h<5$jf!23?(}#cZ$A0vE_nr&$C&$af!#9&B&<{sY z#RxP&^HR(8)%CCc?(e>Fb@}ko)|snn1gXOHMiUw+{0qZDjA$i zEw_#Cp*n`S1;9wAGa_ z2~Ecsofdg|I6Qdx*urZm0boOm6jw8I)lnt$5MicCD$cN@u$*%4PQ**bwzeixveYc+ zuIY&&oCLWWJl}MqOoRjH#V*?x^8h#Jw2`IB6sLcPXsL_pICT?9PVZ0Np=?*d3U&)vpw9f88VX@5qab%=8QY0MCvi& z!1)Rvj)(lQnQE>nIkl*zsqf_Adc4|-&*q^D_<^^-fN#9{OaJtLc=+i*yv4M;sJ1TW?|gs#z=vU7 zAwY)_GXjJux{(JWBv%q5%rtfH-kX`W(an7f9je>5nOSRH-G^!)y0tb;kH)CiPQ?A^i1udbjs@&*_nRF(?n{`ASVT|>bzw>B;h z+i?U?VUm0M723g?_N%T38(V|xr`K=1_W0pj(8dycv0H(89D6CXuIt3X6E)Scmh+1p zU>pty658#SY56DG+Q!UT6_QPhwJvTkgS16_0!cL@(Z7<21QGF*2g%&BJBJ9}O;0mz zM9hLt08lkPHBH+8hLU9uN~(BU0R*MbxylmP<(MEi3JubP2!T=zj{ra6o7_DcDRO9*(LZJ}RriS_ zN*mFs*}~mDXKpb4FFG4Q(q2OZfXSptH8e-unKL{dw;Xm29nA9;9%E!MptY7*iQ{%$ z>cYbAmRFz5sY@w0d*L^{Veo8~VKWsLVHw(0wTPr^t=5W&z4tUYnz^vxsUtU6c^2-y zXV=AX+j52&5v7*Q?Borglw#)jx#}28E$h1GkrH8cr}W;FJ`xbwk3@u{_xXIeA>wRX zGOM+KgNT%Dt(ev4390NQuRIuEdV?N3h9`$oD#=Rc=kNdEyPvl0X~gCO znDxn1@BlS$Jv;DV>#c1E9dA9k`qJxfJ-NKpF(A;~!Nxmo-+5cD_LWyZ|L;DbZ@rGL zJq+(X^W2~MIIQPh2!UJ;!U!<{Eb@Yk7-2&}E&H7z-BJu$H-6BVAMrak*>|cysa~skm0~h;IG*DM}oBsTwcQ;KZG}~_Nr_Mbx$4ixxYwdV_eNeUCesxQ{N3k#>s#30x*IAjxC>~)tGSV0m#m31f%yak95fQ|v zO9OFwVe?#-1l-(Oa&h17)>7z+hDA5EZ);gAp$2zFFP%A zFn}Ju)JjCHwca};OR0z`Qbfvx4>1=h5U_1qhP|>6G$QI!rwneMBLn~#V`NlI3g?I- zeXgF}M}%qZ5tiAo!Zdn1CG*Nfk(Z_$<3`NeMlNvyK9RR>EHj|SOo73~S^iO^5K$J> z=USS1$$;o>|H&iotKFo@6)`WVR}pEnu+HLJBI3%mYkrZjI=jV4C2s!{{xLQ@s9aQr|a6-dEk&@LE2~laiiSUyB zA>rUTCB;-A%nbrD*A)yF&iNxEs%f0ifqB63$#g&>M(}C4atF6`nj>N!sT48guUboM zZD`NEe_m6-At0$_S>q8Ay)^)=wd4&^hu$1USV~4xh;UiNOd()9Zc>CqFgP%LgfK8; z8dFOtf_(Sxa{(2a+Jnb0-hF~R&%Fp1fM(sm!TKl;76^>>;*4*})z#DMCr|3dYRvoH`tE0*|F(C&_s!q>D)bKK;2W$EcH}Am0j^Hc+i~xenvKIo!>Z6(J(G36q42(n>w{nXlzsW(#h!K_ zdSSVJt6%oB<-8Jmw^)2B%WmB>u@D)0EyxVaWSX~***LH+Yug$Etjp@Nl+%}GH&kgh zPCDRhZV=(TL*!f`d2U3U;r-ScA|SG<)urCt@_TO)u`G+52Sa>XD-qKpYo-@mH0 z))4>^vZ*Y!_fj}3vegt2Q@_me&^+@2fSTTT?dH*w7zkY5+*#6<5AM!P9-+e`9Eq4Q zJrc|e;HM{l5>&I2PgNskgA)R%8=aW_xj=h*e*tu85kaD%3NhO+aBgzsvuS*0rPBmu z?s@p0&1HxY(ON4-5XnP}NLs%Ftd=EGLPi=o@*HimEEXLiBh@!*{5N*P7=7e-U((mq z2O$4=@FMWYij#!uZNeAB@fo(o5gDw6J}V`OY10s0wN)_L~HgUBp` z&;On|4q=`nkJ+nAxi+QkiU<=epd*1|kmFIJ>DrFjeqA7V0!1MR-eE-M44%Hk5 zwb8e>ZLMv+_c8iuL^RA&-Z1k%beIh_^?5~@A#A@%N96yUYIGh&^EXXX<+l6?T}M|P z!&>jdw2yJ@W9wrZV{4=JmN#P^!_8ECKErN3Ov7yY!XN-WqbK3Hh+x9ZvvL|D9DQ6| zTzto$zWw2kK2W%JXAxpd4-o{{2(!?k3PuZX-7OFhqggv@I|3>! zWvD@2Kq}S?BnFK>dcC#Z-#*)p+x6x3vXot2DpF+(hN$4-aJ-J|$ICcAdF_q<@bc`| zIhA4>ejKhoR6SyUwvR;eGqtTH(1L|@s4z3hwry@+Yt8**nj1-S^G-)HOc5g={scOF zEv_UiMW*RUn6tt?Cj_bRl_I7_NZZzO>Fj;vO(h5J>8(moB~4`%BI(>Pttg3NBTA5H znd%}SLUz)OOho0(N7YU(<>BFkGa5p~nDj$tOg5sMpWKy6Hp;Rl0Bl>EN8S@Ppp-Io zc|<^*V=MofwUVa&X>tZ5f@cMYF>&4oOf4l__bJX#COL6tywcMpMa+y(t$*uob+`1< z^X+z|) zo{H%MFw%RFdDj5A;Vq_s5ixrf&Arq*h9c6|T6XQ`hT`t7hT*~t;oI@rtutfaItIS< zwwKo3&JLqLJ)W-@LL8S{-Tb_+3(5KYyUVhWIcS$K0NOlcw_DcI4;_KP2M_==1o&`T zcYs*dvIzC9w@1gr>ks+RtN9`{TCY^z@%-Cw)fKOv!YiNq{J;GrfB1&GULoH3(1+`{ zeLGz2)!bA?B)}nzA|NbO!_?=0%+12gdQT0()JD#m@}Jh))>DR711>z=;pPkqym|KpgEW?=uI6W07Tf-B0_{CJSPODmh2vnfSmg$`;G`pt)-Mi2*?SxonG*~ZM4>iD0dqG zU=boRcSNeoGPe+>9A{bh&~Y<42ZT~9mjs+d3afK2N)xV5L@eSSSx5nZW?EQ~Db=8i z4c1!oCzaEeT$ZH>K&aYH4DSE`pZ^FNM3NDj$G9{o1Y~hDm>GtZS|L0V;>`>Jb*bi_ ztQ8OMeISHLF}IsuQl{Bm+Iz1{HM4ZM=6;?#VFJc`>zP?(s_v;mo4Xeg4I@BPjfmk{ zwvMOr5S;yN2<{FJX+Zkg1>!UuOXpR76P8-dj1c?igp_d;ci62!)a1 zE1mDw-6FOf{fKYA`ufH0jCVWTx+%!*J5UxV!3{@o*dcR(845?l_2mJXoRHIqV;1P( znB8+yXch8^;pzn7WDR6R6pEEzeCe5Yz3sU#eCo@6RQSrP{mWmXJNI>6t*-C*oi5Ykz#=>u|LHTCS3o2;4J(cY16@@6U@0QfS{D(?{dVsCDBOt&k@D!6mMbE} zF~Z!%0R#XU$TJQW!LwyM$sJC_Lk%Fz6o672Pw$gjAJy+ad;4uK zKTAl*tL=QZB1S)6Avp}i00;`lk=T~9W6;pBD;;kh`KcoXmO=}GBB%p71b}(;f#DXx zgaEc(AL6)M@0LCej~_f3tqF##3l|}z*c!9ldHWschJ+n_VMQQ!9M?x{gKuA4T%2F* zc9JG_fGQl*OW+8iW+WMUP~l>#L&vhzMA{G_Gkd59xO#+Vr&)>_`9loA`JyFldp4_Q zhpQKv2S<-smjz}ovZoE5nb2VjU6w_4AW#uZ#Y+ljY9aM1I4QS?2p+)mL|!~@e0s2%xo5J+(jy}$ z-eugVEE=I^=^3Zf36z*p)R`i{^xa0DT+_T=OFf-jIaQP1@^}p*Rn5Y^E>%^t*+EzU z2?I;RxubIzJZ4^bkwdk2q1z zuMLsBTLM4ePe4R^A2F+U`81?LGqZ?Ni>uXIA>f3vVMJ0L0Kp<6ay)K?P?yD&Otmia z3rUg6%n=MGK?I7F2uLR<0BC-2fa}9yzuyrF5w)$g*7Be+T=U$7LI9MuaU#%hy|pKS z)(+RW@9%o{xkZ&Wt<2~9TcFIP(!IN|R8Y`%94z&j71pvHeP>ofmci`aubZ_|AiyjF zuof1A(G7eXZFjNT-Cc(JgD1!B=(o8Zo*Z#cf%vZXzw6Ka==Xo|(U(8>_{sM8t*g&| z>dw30cL2IHeePZFd)p8G_?I6%@~?c!OaYOE)SW!7la8Qn5DK77;Dzu6Tp5i35M&T; zNQlTlgJm%1nU*O!1fs{pzj=Uj1cCP`5)uLtRoEPqGP=$d8Ubivp^&{2kWGg3cGAb# z`WULm*0#|%9j%Y+!(kh(X}|96(6^?ejnPK$s$-1sVWX>#KpQ$R93gi{r5F+F=o!k5 z5t$Zq3>SfCUU4zTIvcYy>~c~p3~o< zYN`eRQrJBlB4-2Zx(-teU>0{nVgM)wGTc(CAYvZuW?asknObX^u$#%7>1R!(kOQEH z;|WKYlu7L)RnN@yr{CS&c^(w_k%)*$M7C`MKt_UT9*DHu5fP>dSPcOXDd&cWs5yj+=INi|GAQ9@w814{gIz(W%(BbOAAAahSS62@s?EHN9((Su1?C;>^@CVoZ z^3d@XTsL2h2)65^y6@_I!CVJKKsG^P5Clm8y+A_0)|NRW!c)~u%kGTT0kQWMVNzgg zhu(Flm$hO+2dDGpW8e1CpZ~>QeD$?Ar62XRFTe50-@pBlZ&{zYI1uAIKL8*4c6j{2 zw*xelnzb`V1Yzi)KnNmX1DH*9^hSiH4498N<*W~nDK`=W0RR()yRe)LPY?huV(v>R znTKCWZONndFf`CkM3C21Q}@7hz612$EughF%+%~~+`8&b3$1v^SHd-@P1ZZtw26o)sMjm~Wr^ZO$2hU)w$FjoRXYPIPkG$~l?|X{mgl7xH z;YojMwX^e5_Sy!x2ZoJ?0d?KQ7&eq@kww5p01pLfR+b89r5?eZ!AE=YWH~=45+DWy zNLmFsSf{Z8?*E{ZD2@YZdGb2C4?RD zcs!Wtd~4j-QVN#ic0>fGN{r?@E1ZXpiL!=MxNuR^>7n;92vcPdh|_?6hS8>$DJ z5jni7%c4UyNe%9Zl+6=qmvWEn&q$7(=N6mlIkB4&p{eC@p9lk{HaW(KfJ_rF;~LcN7yhm%}o>$#~8x~%zpC7I65Nd zf=*dC9036=j7A1?c7zF+^NBJ;lrU!z;W9>Nk=}aVT~d!p=LaC_Fihm@$!{4E+qNYE zKEFAtCPh@oY3JaST6yX*-{6KpL^`^=Ez3HzXMFR95#}CDB&B42BKQ1dSpdR@C$!wW zhezHb!eP^vA9koB0s<_{Vy1m`amj!sF%i?rW6E1=L|E$DTC1gsa3;5jN!24_Xiw2N ze73YslPmyc=G;BUak(xt@g$d}rj5ixxzFcgok>V@6A`men?^c965;$b;v}KhQd@6% z0|P*x(jTd7xUxf`TwGk9+~(+D#cc z1_lkzi*{>`k@~S!;-dor91scVaCN}ljsjDZ3-_o6z{N$F-8Ly?9w(DjaL6plvNX}e z9GAOyvthcm-pAOiZ>ophH`VLyc^Ov80`y%_X=>lYKmzPhL zwXC}{07N$mq`HEHxk3@pN}-_PkB?OMKnPNo+X8g~HrFHe0A;KUX3%w`t@=e}hOonf z%NRjH%`i%dU`H~7rBuJQ(7MwHkJa1q+^x+ZkO~%X#2_i<;^Hg0c zovrQIfM8wM-Wr@vU8R0kk3XAx=S-E$HvCZP|R zsrOz)kTDDbBP`O&Uut0zRZSfQ5nJo2EvHj71+(PS%mB7dYy=lcJ^%tBOiB$pmLgd? znE?O@V4?sXLsN=2GY@B`QcBN$aV=cJGbn8;_i*lMW}p=PxfWE!n|%*06^nx`6q zR4b*gY{tS7GuUwAC4Pe&hMVX8Ym6?XczAEUNa>@erH6>z4CiK)?D`bh$<3OY6bTGw zs$9qD=JWH;3nSoc6}UNQOoIebsWqu4oTgyYB4ub#Fz>P~5xy>~ngRrqAd=e1q@%kt z;}|MM_Pbpl{pLQAzUegE;R$t_N1>chWq=Tw=8(!X(E^#`Nzy<s$ zG<0MDC%?uN-x5Fz2!bV%_h#Or13(gKm{_|}5E3E-5wyM)gv#SHpZfKG^E3bC>Wx&r{o7l6K$V%DLn5CDX=P6JVy90`O(j$~_OILqGb>AN}U{f8Z0p{~KrfdVTrU<)?r5*7;ev zb!S@^dj7fl-~EGcy!M*5SJ*n}03<>PPeu@dDG zachUIbsg8o!|}MaZR_pW+SXeeTQjwEB4qMAB0>jyppI~L8xR)Y1n3@a<|KjPTo!pdh!$_mZhj!it&f*L#dLH>74PH z8MAnJhJ2Bzq~Mp9`XYc7pb;^2c({~Ggb3KQrTcNV9Y?4s0*x^;?vO${bIrF{ho<>{ z`m=p_`0;qmh(ktYGv|+xnK1AO-8Mh9pAjP=I>yX>2LK{7MnG$=)>>-?h%uCaSjg!# zlRzB31H!sn-GYgn2~K(8Qs&@fQb;1=1Vv`%-p8_307!|R`NUVvxMBby9gfG8Olqw` zakC-i;5~6i8Pv*;nHp;PfS83S5W&n5f|%5dB6!+rPvQA+K+MuA*ZhD4h`ZhH#%Sx| zwS41^dn6n~RUK%i?UtpwN5&utaP)oxemN2fl|F{4u}}of9sTy4 z4#-ks&+cEGB%&frM;^$8>K@uk!pN%hvHFxN`Ntv5btCvk$9ssmxh$;rX9K{umh zd97pucNk+}0S{o#fhGk+mS1p-$HkWyq3 ze|k+zMF>?@HxIu$9Kduzz;JaV#==E|-}9b#{g*%WQ~H00-}%g^x5MRwU->oI-M;nF zZ`*du6_@p$@4x$FfAP^z|9|@HUn-k|ISPYEsD`5y&Qz{KFGOIB#=VUQMxY^sSdQ2L z!6SKg60oU?%VZtygnS8_BOWGkF9l63mZC`j&7!=BSP6VYGc(eqw9F|;Emt^?eAF5UOu~3G=lZG9Tu)+EnMqbK+TSw_R9pb z4-YkXaMahH$W;TBvJ_K~t4&1wc%=0V>w+A~M?*y3RlY}lcX!SGVt+oEm7r8sZF-ao zt~=leq~POM-}KHdP@j7iWkH9rb!(kGpGi17+Y_R7g<5t(9By5eT3uEa?xRU9BBI?? zRjMS%IoC+xJTm(jcEW%I0F2Q~DH_Vm8HO2ScH~9I90@Q$&18z*KPkWDAt z52e$CbZk_#u#p%liNNkX(7QVSz0@y@k+gd4- z!8Kw=1h?pIe8U?CL=ZEe7m;C_8hx(I%k+=+?~^+# z!U$+!qi3{-dRHP~mUUfQYd*7k)V7UJj^i zOI1`)SUOWK&=G;BF=9e1ODV%g5+BpGjXc9IszXE~rgJ}6MIm;zk`l1Kv?PHk8n2x6jYN_j|tU_dfRrpZvW~ z?LjZ!di}w#{@eBLy|S(wjj@;dz7L##|Bqb#^grwNsCqXw0wN*^4{H$-6bKX=4#SZ1 zr7)FtYzP#lgg``F?~q}sS-Kq_Rn>K=>8!1#h-w!WVjbBhPYCHx!70Fb`V8Y{!x(05 z=+;`(xhJ&VuD9*_xLs}Sx{d4J+Sa$Gt?N)7U9G9>a2sI*eZ)}nLE+#5Vd#$F2xM;H z>b1bd1%KDa-u)MTqCfNOby(e%)nYt)?Nh(-v-`)defMAfOCNmai*|J-A`8ml@uk4n ztu?Z4vdZva2n=)*!Iir9%gwvdQhWa|)c_m_AP6*ID3C&N7jRG(x_o@u+Xmn) zNzRS2jfl`OD%08hTRueYoY6a8h)Q<7^`XbDSsxJ&1b6S;u0^Cq6zaXT?chF^bq|n4 zRh$MSz#9uYC3W6o=zxGyOIEogYR%0d=DPp@={K2g+@$_`I3-^7RCzLiwRFOpLlP1Y zAe=CDvP|Xzq^lEfWb0b$g^2kk0>V<4>{!XlBZxr4-g-{DJlmFt0ATcyMx&tQR84k3 z>l+gVCDDp{>$Oxu>b*~qz)y&70FOLn3It$8&AY|0M5$)JYEo9SLh6*k&huq%y=Imt zQbg2Y88;c8-!&XV(+H5C4+kKCrkRB>cbeo79S*%N#oS!8%oRO6B>)d!*Tut4y^p>w zOQux(KfzXuF#V%uPKfKWwBB<9BOnnjRa~7AWm!fa$tqdb^#=Uw=B1YWjX`S2l8?t3Z|Kv~n z>zlB$;_lCpz)pmLL)Wx76kbxA4fWojKMC(Ue?<^z%LdXw}p?&-#-|_Kp{n#)4yHB8LeCgFM|I#nKaO>>$ zJKl8#ig)j{a5w$`MPTP@};gF9lzR^;S$Axfwmp5C``k74HSt@okUhqm6gF}AIB8;5N> z9^2K`;V}9!XH(mux2}B*)zLTCW~Q!+s%T2CI(llbNggDm2s3aj;&*Q2N5133|M}n6 z7vFXjhUR56x_8tQ3W+fSVl$Miw$F zFmPS;(&ehxTHyjg2^hc}2>fuMvt9H7BTM}NBHPX>t_?4b%UN+#ySfb3>*K(+>{m8I z2T-(9@$#IwmgT%GXLe{;QtIuOp2cNB#*8VS?RLUs!_1p-wmk+3tGb!(ckA)k6ts{K zi@AnJI@b|rw@vQWb*b6d!^|GDI5|nQV~nL%HM22K`gxSj*LGPJGs~D%&R$9_*~&MQ z4WW`{O-z~U)7mhE;YKHe!~Fe}g@AgS14$=w==R7&lwC0MrBnujwp`%e+Q z`{;!wIab6(h|98M>(SwGOuuZVCCm)zWDRmRH%1nb5hG&Gd1@_g6Xu?pbEy>pVwx{P z3TJ>`O{GX?HDYoX!Bmm3loB3&bP<_cGZ9leRoLKZY8g`-M`9*$@7;<>S{mY1ukCIC z#5CD8+1fb9m_u2FWnCv9HFD&YnL9*4KDn^+=sJzxCxS8&rUEOoq1y9SVQv^G!jrg- zhyiZFOf1lcMc1{&D_{8J&;E=5{>@i@Z@=p{dNg_d;_iR_*ZOIg-OM%Po z$1X&)77zzC&H9FAK%_I_-~2vxKZV}$Cg6?pSuedhV&m!I7FruFLj>ipKN%eNjA^6lFf00O>+1@9JMbO<0)1>D@9 zbhuQC3gos8>>VB4ftUh;q=GAePxojTLxE*CT+6Zw!sr7E5;HRa1!!hMHT4k&5jvO%2+TCcL3!{` zu~3jRq>yBtQVV3a4dGH3Bw*mYhNoVg_E2UXL)~;)cZAqR0|OLH-%=^kTlZ56p)5R! zVP+m)YXz`5h(=C5+#_+NAS|cbKM~0sR!1&3ay_NzY|gRUJyi zNSFbLTx264mGC@APLVkxjkcDV3}GoUYZM|7A;}y_C`HWNM?gTf=48APP7Kzp$6%qD zmS0MtbVAozAaC-fxkJq8G$Qe-*&ZiQM^#I$0MS~@+<0=)lmD9T-fwur5Mj3vna;32 z1_yXJS*+`lorn;SYJNm2##tScI(#fkRkb2TRY%uSvl88tVZJQVS|dW?)ElxZX=+Dl zs%zVpMN#Q@5uyCrA|iiXRr7n7YI&N>q{t0$ruV@@MT&>Js)!_IJ7;SEkWAye)%Dg9 z(Gem-)mfyEar!Ppeqz1%IK};kYFa;$5G>Ot$Rs&Lja0*!)4iT;#ui?RjGdNkBY8C9Opa0A!e)^xh@%c{`xJK&5@ujmn|J7gnd;jn!|H1Aks4x!AF0Z+30be{o zH`p!o#v2d;0&sl>)84@Zd+^p(2mFB zw&^$?53M)tI$GDh*--Dz+7Zmq6m*1+9Hf{I2C6KkO)-3}aR2_r$G`VIKk^s0doT1r zYI>$|{n^ic<>!7ufA=@w@aSSG-}7DH@*Usup;b_D(XMCvT^LbaU~6$a$k`5%p&*!p zF{$vi(a`}VG_ZOGBbo%KKtKmKvs%hf#jIm0qGOES1Hw+oCiCp^AX7^cRG#Q_Ndbi8)|ior zPlL4tT*5F##8L|pw{1(;Zx&tTdN`XMESaS2bMw#~j-}?DmyDZnYPyQdlv#AB6bYK_ zyU{iORE}Gw*h5s8#l!oUgm$w@5XsmgW>Hw=!QGSP1qkkwK9Z6+PP!iJ*GGeV{Tzln z0s)|^E=yTz?Y-Ahj@wpiA)-=d=liUg6Uh{N&FF@(sjJ!v2%Mz#bOIqVZ`(2PGDK;H ziaDvoX)?$MVuB}=w528@kw(=dRsrVvix|mn%9S^>j(OE$WakK*7C-<_WUG#w zfmuhyTB?T+8C!!LjFmw)D;eC5->U3{Yo=;fK)cmLbJ{&)Z0U;bNXw!(G|Q3?Wq zGs6akG_Wd&*)m@H^k?qhzEf9j3jq=fFSP;!1s*Q1!eiNGt~MZC#}EWuxGsfRLhZ@* zB{8m29$a5t3UnW#hDO8)L_pkI3y5W93bpIw5B=$nz4GN(|M9>0=X`ZM93JSe{o7Zq zzvF-PWB&GUdJ8(gaPR(ifB)n2v+;BPQ#^5TbxW=chgt9d1M3kER3L~9sGVj79lEK3 zIk-xxX5OUaO-|j9tuIBET81XvOqg0e4B0Od;Od@BkGTb4>pJG2hGbO@v)0G9wZq{! z%#Ny;R|oH-kA6IC;I3ngwt4Gl!$*&yXahsTEzB5$!29R{?z=ra^X$bB|LDu#_k&lv zyIS}{3Ou@e_?b_>@^5}FKL7dhMi^iqGNxYwR<<$d*l>r3r-yz#R4Ggl7;1{) z;4UEW^z!=mJ}bcI@4ScmUA=vqD|K&Iqg@{l3x)_^T%7NAySiL=BnxYY%(!kE@?u^lQkms-j}7KoF+UO-2qS=3I59fFyw#&f{@&O5|(DDHaq(!SA&q$m5@rU ztu;X42`QM$d7eI5r1zd@@VQ7vn5jrHHA63@=ukdcW;8U9n`3k$2E>!hYKUm&Npy|r zjzu_GH)q$&&5G|H0SPc2y-N{hLB!+nkn|KYYrT7TUbVMv6P7qdbTS_{hcN+aGonA| z^BB3t0z`)UvK;6e-Y~d`bxVNa_2ICtYbiy|mZbt>$br-WH4AIetkWzw`Hy1M*H(ijR!+tIN#|dS6fbn7g{OKn>#h7>rO1z^;|%&rXp z+}cv`?Jqt1cmD2QfAjk3|LgzpPrWPfu;2NuFC4Dl_7i{OnRmVW5F=iC;kNwQN8Rl= zKQZ3?GPi3F2Q*~X-iaY3EP^5s2!O(1#6V~s79ksinbqp5zAPT*T5a^cTbDklk0Q)f zgo&0~^Sw$&3m^i_AwY!pVIC6-a@?A^HywTG;kfnDZH((}+jKPTx^1m(uBM~;XwVxE z4edC(n?gD$+?as@d)urCoZo`Czx=`v{rK%a{jsa_3*%Ze?BV63U;mBQ{+Is|Ui(6A zDx>kOvfG{ACOQ+Ouzu`IE$!*$QkT)Yi*QBv4#3cf3L#{z6~GxvM*x6A5J-*?T@Ok~ zVaV$lAb=YHGcI94rSftPzG3k7v8y`;lLH0W0H8|l_ST#F#n0YeZ^7d?zFQWLI3AA# z$igM-5$Ac?&6J31O;SZ<<9DuBI@I04aknn5b$1VlKJ@(j%*@islfPI*)^*Jm&Wsh; zrABy$G&4nUvdjdyu`m&ip`{2B=h`j8$8DRkgn1u*x9;4$_m)WA(L1xG$ZBD!-5w8z zWmzrVcuc(y1la9%z4eGFwWI=1gsQ%^El21&K_HZe<1r4UR!F)lGBM@N3W-z5AwumV zlYkJw#6XyaU^A0aq{tY_#9Ij|Ss{c}rMBMP)2$PLI3wIi3U?nm3d*u9S+^brBBHJd zD~c)9a}E~&6K)tGMYe4Nh26R)_i>D#nzjh{;VDDa>{y2|H!hs6_gYH^6z1^9BZ(!6 zV@&PK-1hr@Yc03gEGu{SQp6nF)-Z5uZC%&t3P1#etPxI`!ORl@pIb=I5HpI)To6&m z$dW!CnueRh^`X?VTi0xOJ2@7hO37)JBNi5qP#sHMCiV*e!qXv(h*`v#HuDSsnp%o= z2za=@&Yvp+w%$t-H6;|OWintam?`Ugw2ftt$E!!b`HTPRGr#l8RSpFV2i#dN{?1?d zYya@C{uetqhpjP{Y?=Uu2m=E5SobSQ)MppG_uScsp7pM%hFlHG81A9oRj#fdJ$M~s zoUaR^1Tq5fZh;~;Hun&1xCjvRra%-(n~q~UXzw(ju2qMDySp*rXd5$v;dXhvcYg7c zf8ob||95}y4?p)A)9A;?_UZrd+FIZFV}Egd`Q2A&Cp{O;8+|BSxz$F(24 zHzdUyJ;Tuz8j=$faqJ#A*cMpU$R;88Y96Xy7gN)UBoTJ;oSYZ=<(O$FcQ3x{v1Cz4aJfw+*zhYm9DVK$wRSKoK6}5P-3k zxO2aL_*>uoUyGLghL2J4J0|*^s#4Us~dbstn_x=6Fc<}pPe$O)(cy<91sAD18 zFNF~z+_vL(^|&3bMjs+Ol1ZDcwdlxxpV?m>5d+4skqtMgTf_;M?cogKZeyss)n&=F zY~DqPkP^%4UTX0P=ArCq%wT_774rpJmKp$U+tzg@PL!tsKrIEaOjTJm+xoaJb*ZLm z=7gNf=x$xjJm#U^it<;*|lcA%O?B{Ui0+@}_K!}cHYR+?1 z1(-f#uwhb4#>MCad(|-lV7IQVcekEa|Cv0~L@ejg84!^WNB_o0QmV!TyLBCA`Bh0N zE3Mg7meq_JnhiqX;O>Dr=7DTGNkDO4fAZFu-l2qQjNt&#d&?39)e)8?6FMA^wUlL9 z)O5Gs^*)%nra2)~(*Vqr7Q2MXot{yj_%o!FA%OyBF$)G|94t#wAo(f~38eIh6Bx%} z`UTnC@)rRhX)_*?EEjiYVjbhAXQ|ejLhG`wZtmuKYMK-&eGCycbc^snW<(%xB_6sR zKmA+3`Uk)BE51Dv=wWcDT>Rt@{rUgqZ~TMj);s#fB|LTEfM#sS`&;AjkqmbGTYFyr z@HapC%@2MQ&+cx6K!mu|KqNyn2VHjSSHJRwKlp<$x>H@2y4#^JFajYE2Qy;yO_#OQ zx~O665i4!hu8)`CgJfr8lu~-z%&hEI;7XN2?bi8Or+ELfFa7x+_~G83e*O!uup#)- ze)U&A|N0wm|EquF{QV!kUUvQ7y|a&eXT5dt@YjE~fBLtV(CCAU1fr{j^<}}ZrkjQ= zD#l>!7(fgJ1Kbm?X~T>=)mlm^O|$1lsHd-ig?NGsA-gCN?+jz8n>-AkXih$e85%4|ldD{Q4}4@-7H}m4G&i*nsI}sH2FIta z!N@4&fZj<=>8$88x5tymad}t(K_MJ)U0_#W4BW5K6o7ywdM~>Q;P&J|Z_2n0*H4~~ zgBBJ9vi$yvLd8JGm+z{*_i+36#q-a~y<1nMsOuu?M!vQ!y>9zg;D z!6Fur?{#)t<-3Cz?!ko-Y4pA>yVlzngPBq^W??|jBcoY}(2a|7sgs+K-53ziT1&Ao z#eifkAdrtWk}*aW%MBg*$tQOeiA*(T*V*!rUdpUWTGll;o^;kQQy(K+ z1(~^&GR7D~kq{z7Aw4$+78aJxHt;YQ%+h+#ZV1Y1CL}lao0~@;B#Z>PRczaqF3|KD z!>R0vh42Jq?5C?XgR3T6hUKJ?yuE!Bg}REH(> z3JlT~mAl2wCPYN*vU+#~WTwW{YAxBK4oDHkNErYG2Mx^`+$4H9m?|@y8W)*$8aPK@ z5fK;(Kt((SAtsGJ|GFrrc08Q=JoG-8NrbmeODSRCZbTJQy+1W3&TLW^cN6vAfkR5k zAdITAaK`rmfQ5VOb*Zj4dM8Tg2)dq_d|;u$9PIk(-~Nq%|BF8}F5f~|09fn(x7Xc%t#Gyn1i*koHY{A%TW1h(cyib;bzPRn(H!II zcs1I#+PQ<11_nZ)4d=q(0e}m0@&5eT?(hHIzjptn^Z)bz=e!dv#eq_}s1AZ%}D}_&ad@lywj~014o`$)ccdJs077=cGJ#ubW9fczamyFHxPNPRc1HcW zy9LTItXU^vdG_9mZ-2(jgJF>E3Js%BN5FM0OsKBQy4$V$-g=Z0L?gg*MiG&!NqSEu zNNt$TS|Jv6<_IUkX`vd`UKUmg9 zhZ13LT}rvBj*#h&%Xb~-K7>?6ayUW42vajaB(;8H0>*S!MP#E1042tQCRY)erH>x& z*&UZB(VLP9V6mad#6)>yj5uNMU}k&69f(AVs)B`x7^GesV+;hKBBOPYQ$i&dFY~Q$ z%q$D%fi)vv*#QyZ5tJizMCiTGe0e~Y@!iata#wRhk<5GqAgWHmpP9k|AecETP2oSm zRttbx+rZ2$l<2+iK!jS$=n5E^wna5UBSz0MXS2{)mSsC`!~}?CsW$Y+QauS@kd*rX zfN@hK8#ad4S|VmNJ56Tp*33$gyfx+*obE{$%IY3wE+nmWIyL=e@fKnruuV8QA(18k ziiw%~?Eb@ylB6t=EZz*o0MFw_W_-*tTNG&(cQa0Z^qf(qNdbtcE{jdta9CL3(pxWu zolv{E6QDZU!#7_2_rLnD-~94tS9YltgWmb}_x#k~`Y%54j(6+RW4|871$KLX{gEDw zoIu065i`*8-2InddGpPm|40Awmw)cxeDlXY{`U90T+YtQogG(1lIw?$fB%!e_iMlK z%V$6@);ss)g6axjkSw#SE)`%AK!tU`Mjh6*^$=@lhoKP#l%k3vQeAgU$ETOOx{Th^ zJy}rBgzw+I_y6VWzk)TpuKQkeggNJ0-}mj%yK^_X0W^R{28cuw0Hc_bL{g#>NhMmz zvSrz>bA9}9>ONdoolxf-yKI*&TlTe7rX`t@NGefOV9p6d&Z*JpZgkw;JAG@dIp-MT zK8&?n_r_DuaM*Lt zYc~TAi;?5up;$aiJ^A`OE|4G|2WmP(4M5P~qe*D;u&s#X<7$Xxan!mY54D)ZDvQJ!Hm%*-I_CA9BfRR&&N7s}!wObB0nRcUFs9 zB~?HRL^Tf*$d(pi-=3AbUUS78-`wvxu$Cs!w!vW9m;C&T&wuh$_RzyPUvHHYM{F9~ zvZXwG-<_}dg?GOFs&)x;*MwO5l43++h#00VFo6;jF)}F`8e$GmLjTnHx}l3VEzy+| zTTVlRaA6&~3Z;NWR#eS|07k$DM1Tfl&Ef)2W>A1afTrnCI~Cw4%x6|F<(wlo9HUS$ zR03C`W>iTbSnfAA*3$|x6E$%%O#mvj8kMcBzVrnR2yn=mfI|pGSmqf}V+yK9fVBt{ zSE;5Dn0;6uodKfE3<1E)M zdp_eaAsogWJ1`~^smOr?v(l(h0SF zg6C=g)>_qMn;z&6uxP4A>X#UI7Bne#eILlNd#Yj~@^m_#&*z8`LUg;E|4s?f973fQ zQbYh%;Sf~+4zyZRzXsP@4HytOuc^G1fjpya68shf;&YS?CqK;1o#F)bPUK4vX3IHIo&$FX@Lj-{k zN9`}T8(c^BJ&xu?7MI_dqRMzgQUe1uOU&-sE~Wv3e^q>?7DI4T)R`~*X+yGn$K98j=|&8?|H#Vg_LM7* zY<&AG<)!Ciw+T|rEC#HS8Icf%Es1TzX#$?#qXH&|EE;MFDMb!kGct1_8W*wbRR+iX zE0CCst*YN%s`(FznbuNjm0F6FqFVaCn3O14hn#apEj9Nfl|X79JTy>2tqHcWo3Fd! z;2Yk!a@(segd~$m;K)T6Q(1rJk>h{z8F=imu(`Pa2!I-6?&@M#c+K^bEuXdvCdF(9$k${Y|FwsJjnv7GE1J`kom?eGk*--Vk^eqlA9 zpW{40FBAwAAuxaeR*+&5cshZ=(97z@)v_^g1qL+2T=dDOpY4Z!x^tTQ%%)O{N#PXx zAu}O``rKoWhRI}U*DfQ##ET2lCPhN3Mw3J)H4nuQnAwZc+mXszpQrYf8!AbFHf4^%4Qma|7MnK2A0Of0qCyzZv?7T>RYFbJv&GH9*bwDZ-Aff-riYyyN3nFm_7+Fmrs57 z!S7sLTZ701S)YCW___aju=FeUzfn`Vs7$kcd-uNumv^s!?K9=+M?zOoq~>g+mB)-? zseO?eV#8Wu+jd>Yu~AHwLxqAFQ)*BsFasD9lQRbqar>LWl@X3csI@vg!c>QT098>j zt+gMdWb;(gI+UR|sZz6v7^tZrRACSUn=Rm#hj+f})w}L_&GedUHhDrRs!6NRZmyqy z^xLOD`j+P{_Hs!P}9pe%kdkGZ94<8_^z=OTpk8 z88mYhnE8AFY9Yokat+Yk-H2$0W`c+@CSN~zF>`LI%jJCQ5Mwlh7{b=pR!k{|FyyR7 znc3~eYUZ3%BJPLYN2pS3+cvexHi(eDij0X&f6FZJQ6LbLsKgk|Kx$PTR~=?T{yzV0 zj-hGIDW$e;yRLKYMyaKi5;!pPyqh;EwQZYo27|!pdSCx%O~>UG{hf?^p^m|XW?)hT zy-E{?7)>oO7ga=HL(A5*-Xb*wTbGWnY|pLb1@LI^`P#{-xL>Z+tk%vG(_ z=>%VR?um!L^JVMS1FL~9r0Km!Z~e#z-oKJ2&KoQ z@D=UOT`T9#Z*^-S(8k7k)|wU?VAKjbmX~MKoiYf|T3B8LZj8mE374=KpvAuCw#752 zPVLyg>s;MBojY2Z)H3h0oVjrB(#3OE&aV(RF{LIn3?gYdldi92;FzdMrQ|qWppA~Z z?#`pv{Q56{?BD&z`q@igwU+Zx5^3JLbm}kvc<8#N``~zH4c^x_5W| z&NpFgHM$12W*|lstcV;GR3w)=gtjr$s)a(TnF1#%BVQ#HX(?8-ZK>@YdC35~+$1P?9J{w2L}S6H0E zsV%)Qr)mHdv;vudg=x@Q@>W5hW*Q=gKpaBA$RYB@OB?^{U;VpBAAIo5_r3n`75l-k zSxU8*S5BNddE(et{^s*1o`3nLfB6@{ga}n&(oSQFf{?2e)hZejp|F&S28_gneLruS zhPOjZ{S_0bF--zf7d=2UFv~$&+YHAz}{f zwrvM^rv=C-DEO#2`GCOlW0n5sD1DRR*_n22*G&-F+}I$BZ7*Cz#)X3i+fOr z$amu-QQM6pchfKA(Y zWpnVDuV^qJhX5ifO3Z-nu=kV;9V2s9V~hbHmr95n*ryF&S^{&a;!7uwTXAs(GZAsl znTcYIZtxz4A%^Hh!V3u@0U;pPQe5z$s%_J{$%dVlJYp^(gkWmS0l=JTC{>t)k6+B3 zONlWc&@f~q2<}Liia^9pK>)*Y`sJ6u{guzGojp!aOiP}ZU03Y?*^hkmy6bMT4sw@c zZ%qs!Vi$+HDY2aZXx-`}6`VF^0x7_B0+3>pc9fl$&R*Da)h-TAm*jk z>NNb246sljCLICQKBJR~8XEY-ry@nb6hTE)a#1N(t4gt2qz5; zGP7N~o9k~}x$D(SH{DQ|cW!XRG?~UoIpf8Rji(7 z@7@C&tLxwT#@C;C_@T($mm*BXO4%B6ztvwjclWDq-M4Q~5F1ngsCBJ8x7Z{INz}S- zFty2a($BZRAaF>jH2^|3GC-(B0E|N{wXkQp5OQGKb{)A-o0;9L3!v_zP?eI4ha>q~ zLR10=F)=Y_A`Y&s@lCioYQbzfVLN%2;>b{7Hn5bEZ>Yc^rABHca{cajuJ9lK;wT42 z03~)Wu&HU&wxyPS=v~OGwYHPiGu{m>cmv8DqDOrsf75+rDYdFdsRg&=T0JNU0Ni5j z+Rmm)X5bJN=SOg0RU3w(X&UgijxYo&MIF5i=E6?!w*?49gpfiAK1^S}aG0qXnt_jQ z0+oSdOibk4rx;_YrB-#qO3v8;n1eGAePa8;3I;K{HlpwQ7=oc0m@^KMFoxivt%jzm z;IcOMo)#So1N{REfBhVrI2^po;k@pdw)AwHE-u%%PHQ z$<8HvXuFef{oU}76UQB>tL4D$ri9GQ4v1uE!S}r8Rj*3iR>-W#MW7lC#fowWFlhlbmL4iVKOiS)0uVqHz!}uKWA}alfi6#@ zfe0{9_U*Np1go+JLhXlu40~6AyWjisPygOG|M>a!i?$G8qqoha*WY|-&y{;#eE66R zIW43vm$l6~q$#0DE-|1MQ&wScBxmgeiUI&KP8Zq%vCsW9#@F0=*Pd&x_^sdmoo{^i zyFJ;^_W(sV*3N(7Pj~I#wfnZa&M5Ur8yslo!F_Lf_w2}ZCqMUB<;m~j=32~!{qxU8 zfT*CQLMssTHtlE@TE$ zuvP%EoRN_O>13ho+1uQB!_qCc&W>K+9N1eq6%Hw4(AwrsPo6yez<17n?JIEN1Z~VG zh>TD$Kx&O}*Pb08e9e6yy8n%L-gE;<#cX0W+qq!eQcOjZ%si@GO^2a^MMlzjSzq6n zHEk1sjIEQr(c6{|^Eo#Q#0{2&=cNp5bXalUEYA$Dp2pp+otfjs3cPNlU_>k)zo_Q4 zP~T>YC^3r)6lbh=x>At=06cG0 zOAq3`{4;U^idSp6`JY6~!CHnm)esxk*e zh#{)#&=1V){|^E>(TSOA6=L-H%rBs`k3R79V-KKiH6)gC zc`|$dJKp}&AN=6T!gB70RDlFwqe2Hj4OxZ6z~JXC1O#O;kc~M9^W`xtEY!7)Fi8+1 zuz@MC09!QzOGE_?G_bVT%jTba`-}hfZ~pM4oV6KQwtc%7-|}N`dEeXLH{FXb9e=7n zGp{|KzqIirp)F z_wRoGuKUiOJpc3yPj`L6)DnRnKlSu~{hj?E>}I#WrnZv-!$5KgIb3=Dl^@#OJ$v-r z7ymLJKOKk8hR!4-p-D9)KsKw0EFQqh0XP66AmJEPz$1MI{Rlf!bWBxE*>yIeD#cXM z6wRa-kg8HqGniE}Ya3ZyzCFKEnL9}oEXf&0%VD6rrJ>kTd};%^F4`| zmL@&X`5w-0LRZZ)4nvwzEJ%Z5HOaZtyt1_8O}F21|IvF-Jbi5Fhm)_IDpFT=Emy3I zJC?1?saw10?z?7T5r9>p43#kuq7FG=+a`*PMG8nnCIr+fO-fzKAw&~#{SPrsr?YuC z2N5@`)>0@qsY&3ny&r5FKfWzGzA@B9RvHam1l!NT{MnM#y05L61^h;Xoqlr=7q|NX5n^ zT1Ko=KnVZ>(y^DG`PNtevfnrlIRjNKwr}sQAA8^XS9Yu*Lm;$49@c1 z$Lo^}i4%o|Y5dqv|J1wR@ur1oc=y}iws*&_FMRE5pZolm%i7lFskQm3&4mN|4F<&E zRu<_>sTBhTnn2c&TF_E@#mGP~olH4rmf_x8Z=x9f^Y4EA7*bIih8mNW)pMsm`>6xD ztlaauwT27RrCet1Qrx}2-T6ZYuR3z+vB&4%{wADy8T*cX3mSS2_%7{UZsZ3_Db1xh?JiGCxrR%O~4jiDR zg^gT|5=UkX6EZ%(wsrQ{iLZXKeCIo`dNE~#Qi&s{U?Es++J)u)i#y(O*Udlko_F1N z^a@slv|vL~En-Ni#mE3qO9@0|MvMR?Vz61{#MwM-POdqE?ZkjW!zg9ww)!yd`;8_y zu~`9+XD>!twC`zEn*$TszpO0`4K!^_%LEsDm{*_*VpeOnHc!m$q)|cb%g#KxYws=h z?7D5^(ng#m6PQjCL;z;sto;R9iG-kFrrNe?X~&YwTSK5)>b&m^EhYxRT8q_cz$z9a z5mJ@v>`}lzaOnHa54nch2SR^#^mf+sUoTY*{Pidbvm8&eUFBv zjM3jN!|{McGpnUAaR^aV+|NOXxs+Okm!X;60<(-!F`Am>vzKcFnTUZ!1UP7wYU(eNYrs?#w!;@p zZ8n|t{ovS(m{QxcH5VyAxUAOym`7ZXm?P#%o8b2rD?6x2YZS)M`xC<4I@08@ai4#EJ26*N$Q7{LGv z0Q#CP(js**|AW8$%P--1?e3 zZ?)X*vPqm&uuM%HhQUg0Q=n3k3QcDQSVbrxD3w~;b|GKdBIXEb>*DGSS01|hx}&F0 zo&S?Bf8mw0r=@JwE&~Z1JNC+_KC!d!_q_Hk>$67N#sY3BY~f__%A5D@zi#vDn>L9t_z4^Uwef`pO)^GH)#fACmT4-8`EzV|;8e@biV5%Zu2pmdP z8VYZ2t(`w_J7$v|%Y~Fdb-tM|TqF_6bzwFeM4|5sDkchT3#2qB*euWuA@{HYZ6(4q zWz?|Hkj?ViW~f2|rz?p-Yqoi*OBi;?8FywymiFv}6d+EZ-xBFKE$XmNyANvY`cf=& zyU@bWGZHBTrc&~dvzmm&wbsB%NA>~Erqdz!fXI>6j0p2kCX;qDnYgOnXv_!_Gc*V> zR8eB8Rhrb4TD%{XD%&zurP!>S%BZ1JL_-&FP_@iH|j2nN%7~;rx zKub-^IR^}8R%;<JhF?uv0fT;*E5qXS>)V>n?KxZNNcNmpg{f?AkbgaCqr&3BoKZsPu zkW$JeU#9iCupy-c2qhQaFd~tNhSAw)MAXLUYtW`?M5UIh06?RmbR5`3eB%U$pvoas z69hn{YHBLQY&M&gQe1EDwZ}g{H5WumA(|N)Hj`!;hMF^}x}Q_4s+gMuv?z%tvWLI_ z<(Hp+bi&G7Fv!xv@(;i1EkF68_b)F_R*2P~+{Sp{XQ=Qw-AyM8#?ye*|aEyJbFu+Wq&sYzmtOfugx1#Fk9DyM)7 zhFCVY{41y=J9ey8sq?kX55D(3SKWN=zyDAF>4g`MVZ;4Uwf4Gpe)TUuxpm^X{jYm- zy!!f$XoX2BAYkT}uReO<>TB$EZ`yqBnG26TVkcfI=g&gF6-+?OcrNn87qgg(WDr0k zCiGntAuxhfb+LYKu@11wuw)@~gVb+{W zf$5G#MWz^y(l8WeiyVkSprT^m14|Rvw)Dh_G~sagU`||fHwuXc{XW8ckf)Lv)yx# zKDxf+cAhTJcJ6|{$b6F+=j*x2Ju5&h-9nj8c4j6pBfx3f#=y}CAWYi?DtSJnb|$r^ zHpn1gI+8HVw1^{u#usNipPE$hzK{TsaeO6^s!88>?2*j1`c<-40Z?><0+6YBE$QZ6 zO0j90%OPw=-U%pgVo!5+H+4wKt=d(JI|OWm&e>(&$+#F*BQjz}GndRDLZ1tv#uVLz?vsJ2 z%4J^xfcN<}9{JS}0&|sGN^aU_L|fn(E_peP!_nZn9T6=m0LVoCX<>kpv&VQ;5hjWu zj6XsIebVQX*wnwqbl@cNPG?xHE;L&GC z+qvhW9_CU?ZQ2wmb@L9u{2HcKVvHv07%z@N)x4Q?A%rt8y}R-6Mn7YfTCM9iaMQM? z<_ySM6p@jU3{(mOJp1tX9{=8#W&Khcz^rx~!;zzhe&J(3yJKnBuvur+!s^^!?r_Z@ zw7?AW3{?RP*h;A}C9Vn8pwB}cLJT~apaFywmM6Bgjtv6>^n-|SAdqULwm==uKl`Px z{l`E1)M_X-fc3P%)1Usp2Y>!2Kir0iRSOXnRHY)D0j74AN}Rv)N_VzfT3Un-xJhYg zK>z@$&M)bOwb`y&ySxajTYYKUmf30<7^%z)6EvwkxW7%C{cLge)Lr)v8~w%23!AI! zkOEtVbLWSzfAyu8UYy)@@2*k; zS-`f15a(vx#G%$^8j@5lmA2-?@fXj0_kpd)ABVH2VWZ>RCrTl-VKPNz;2=bU*^W4S z%Wb!Q^j+_`@75c!n`4ZiG~e2ow2eli7{M6LQVM7UMoOWm5?X{5ON3)Doj-kI@9Xb} zgZm_kWvl1&rEfla?4f5DC@t<;q(rdPKyddc0g_6EKEwK2u9tL0j9QGb>JTE3SyrVc zzy$j|?7!uv5B%hhKK?KN^{KVZGUOM}yjWy)so4!{^IW#!(+QbBegi6dR;>%~U@xbdp``(6nE)z4?D!_;U-h(@m zPpXufU5dHg^@^WM-R3d$14j-RTxf&h`aASo3IucjT@1k?KrXWI@k+D>5e;-znY@w4+YFGnbh zB4$Sp?)%7x-hb%8UNB4)u>_a{ZXxspD8LnvVNe?iCS)QA0$^YQjLl>Th(Hx`RT(HI zKmsxC<}_`%WiY9I3A-jk&`*8gul~zl|Ir29!Zy?{Pec0254`UeKK#*1Y7ks#$Rfo+ zh^b`+?FlSjoIm)5Z>QYceCKVuZ@UVV%>-fE&USBHIKFn_rRmOchSdmsPf zKZ~>Y#F-Z!eDY1<|bB@Y>i+NRApE7;{e zS^=HVCnAAD(=>S){2k=LZk0d)b*Pyif{_5U$_SOHTHS-~JLYW`5sY9ZRrjX(Nm5l^ zit56dm?CrVD5R89&e^~Mvyn@X#Dk$+p$i5h63M{(X%*$jVOs}05(gai9C&oA)LPBj zwjGAS1^NiU#5oTk1fO*fF$5;0ArE0pW=9~cMPiJAh^THYaL%c}Z?)ExVig$y8HC<; zyJ@ML&s|j<0+pPdD9l9tFr*lXNHv=pp#EKa7ywX94NNgbQSqP>1k~#9sd~C>YEsDs z0NlGjdf=E$v{YfD5JT7ZF$6ywZxW3#s{$x4-q*KlTgzcJ3-ALn(oy zsUc{HShE0_l{v*`vTu2y`9t6O;tP*{`!#QU+cmF!Rk~)UOs8QvEnKnl(xWe(f8ykU za9h~12$N7ql!PN&fs!T77691lz*(-p>WV8q`r-M!`|~emo36ikP6gL%vqf~yp8Cvp zp857;Q*Kud?Qi$*;XTVWSL-x339*Iqr@Qsjm-1G7>z<{z-c^^a#vUY-2vjb$7=ZN> z+Z0qv&1rGvXMXWl9y@vRyAMD1a!bGa?Jrnac+<_VpT!nJge`zZ0VFLf0dr^w06+zl znL{&cQ%m!$QnUt8YMB!U=DzE~2(LvG@bh0^ho)_;A`$gNmr?^j?!F2k_^O9FsA|)M zt@*r3DFhZpPh9q0bZXMj4^2uj(vUL~wM{z=gJv~%KO_2&Au*|g^8iaNfEWUc0Bwt3 zwi)2y;oC6=*Ur{jQfgWb{=a-J;k0Q_U^6r#%6afK@|-V_JMJXp%il%R7?>JRITfKU!GSHt0rLI}PA`T+|D zqU({|1_21B=HHYaDXeBO1Xr4RlTOiR!wLXQ6g+9zAcU}uYxf-@T+TrPmop*67%7pO z%jU@Ilb))T;ObJ#dg(1BY6rk~p%!t(yQqXth*qVl!#9Dil5W(lZZz z_w!oTp$2>8LCO;wppH#36ao*7Q?i{Ja3fA^W+I|1ip83gL`WZ@lee8aE(+|TY?St1-# z0|abZhF&N}Bn&AMBO*i9uy^t8Klg!C$DjMwXTN;<{JA@yd-m-=|DkYXni-pw-8+vi zyz>2r&OGwe%D%nn+9PpC8gd65IMFZ+s%Arv0hV_yR?PRw9+N*faPG~~~ZWk9|O8Nsw)ov<6r&NfAYWlFK1V`zP4c9o+&gS1WOaxvB0TlQ>#iX zLJ)JV6)n#*88%G<2qA@9YAwYd90i?B+gvglmQvbD!^ToXRHTTf3^@7RB`3(fkT+FD zuowaW_*L9*0L~U1hQSvDfavLDrIr{&**5UHF~WC1RcfRtB2C*8V&4y?LN>OfflpK?UU z;^eOH>^fZ{voSBkKO{c@5K*lK0ae5+2W@k-%t1R&jjVqMmDKjl$aAfo@Xp&5Ezd;E zr6QV`F>>)_2+=UET+y+>BY|qvp8+$eTCFAGn2ixr8Xx!IS7q|?kceE@?DfMZ8_#4J zDTIKI761TGPh|2Wth`;i$E-)6AufY6J-yw(O+BB>uSQ<0bIGa{Q$#Y{rWB`?oN4HK za|Em^Rm2q+xcyy%Oh(|CZZoxE0HD&(A9?VrtFOGkRx!jFVfS?L=YHxZ@4Wps9iR*) zX0X*h_5i}r3&aSyf&oN=6kue85rhC{Alb5DoMJ-&3XNyQ^fHH#45|W)B`RDVc=5^K z{OeCYeDP(OaIMg`&70nM-#_`)U%P7m{xaWSFpgA8jwz&=47rHJ6jT5LBWY)b`*yze z!$1Dai^q?hT0QycPv>FnEkFCS&9!^#!VLGe2kyV?{C6Ha_4LyR1ez-kT5FjS2cVcj z!&Zkf7fz5;(~#YG^_9Q)<3D9v`d8oh>Zx zI4rKj{ReH|RXeUd-0s=ksl;}YCQStxHggD31~Vo!u7VHv{Oj z_g;GPiK|}!#&p|VeN1I_Yq1EN+w7ix;V*yZztO4l2bcFF zBN0L~X*{3`9r%Wh>u@%QxuMLJtRfOZLg^|UqO}&h%uNAsNQog4 zqJMdR;DVu|St~Pb+ZsI2j+n`eP1GUm?tAb;S4%O25F?Fd_Yv0U)m2NCTFmvhNNVPH z^~+2Z%}PX`aEAiK41^8<7|}r9ERLhIBB6g*A^;&drOS!%QpEs#A|odi1E`2YBHa<` zhbb?xF2eM$Zrik_6lWlM+PJC`qF>j$tv)s(h8Q>s6ao^HvAmh7iNoeoiiTSI90NZ0 z%)`$-`aP;S1Wp^aaA>bw8;v;Xah^^>?VL9kZw&G)_LS3mmEgFBbW za!7#?yZKfO1b|u<$e2KjAO#cxtf)E%z3%>7e*T~T+JE?8|K0iXr@r^~Z_NApu8;ln z;`LW|0FznVeea#&(WhT|=|y?+$t&-?JuV)qU}Df|O@!@q!4NfwiB1+4uL#Yr{QO7m zy7Sim^1GjS@Tn&Tfyrb707J=Q8be}J$^}->)w5^irKcdaXO@>>X(8;}zqtR9?c9a4 z#dcu<+DWy5sbxxNhJqRl#TbZ96PRrd0F_I%+RNzLwA^mZ;p~NTU;gIC=B4ZIzmJaITxJP3yM>J&E?#`) z3t#`{=Rfz-lTY0=JFsuxHHU7$N1GW|1*0}4S-*7Y%*l)M(^tRcmdWd`)g2_-GXw(W z6my@sadTJ9^R1L<0I4QHV@L_LPe4EMp&vbd^4Nd-h41&L;o-mNgx+++Yj%eU z7Z4U&NIaV^mZ6x%5NKPcO0`r#Auu4IfF&2kn3`m&Xs9Y^4jQLia>GpwaXz0nZPTWv z?+35GQbknUo;_w|5;-Kp+ek;GiU<(~3YWujYOQX7HGs$r09DnyRd4bT(D5NLr7G3H zbR^@Bid(0DqAEH%)`4}GM;}$c0}~P9xK4mteSxvPQbs~FfRs|nrPcy~F$SsXOj*yD zMZlCI0Avvl>0u&8aR%%531zGwB2~p4nxcQZ8A7!f})DQr$X%ZL={SZP3JjP33b{)9s&&}2@RQrJoh9?wy5S4+IT-_;M ztHc;p1xL0ti-;#|qnD6ciN;{qq3=EDMyiAqrBnlRla9}KA%#46a2f%CU-@GUrHHD9 zz+SWig)zf@{LscFm4iZ=h&cov>HwZvf!hUxzzzETfj13zUFU}i zzrm23Yg7S1)f`5jnq*)@&Z^e7&Cm}>s6Zh`$psY8XGH=O6#Z>1SxEEg9J4{(J8H=fC``w;VmHebH_RDb!&| zi2-ovbCX&if`-dxM~qSxQD%!fLN!9Y<+XQw1|pFMW w}CV{`MvzxE4! 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

~6p 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

|6(PQfFL&_!^#~XU@ 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 Date: Wed, 20 Nov 2024 10:01:06 +0400 Subject: [PATCH 03/44] gitignore tinychat pngs --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index bd583381..bc6a38d7 100644 --- a/.gitignore +++ b/.gitignore @@ -172,4 +172,4 @@ cython_debug/ **/*.xcodeproj/* .aider* -./exo/tinychat/images/*.png \ No newline at end of file +exo/tinychat/images/*.png From 4874295b34af0e6e441925e1fe6c74a542f9a417 Mon Sep 17 00:00:00 2001 From: Pranav Veldurthi Date: Wed, 20 Nov 2024 18:08:54 -0500 Subject: [PATCH 04/44] Image streaming while generation --- exo/api/chatgpt_api.py | 4 ++-- exo/inference/mlx/models/StableDiffusionPipeline.py | 5 +++-- exo/orchestration/standard_node.py | 2 +- exo/tinychat/index.js | 6 +++++- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/exo/api/chatgpt_api.py b/exo/api/chatgpt_api.py index e53448c0..8f98aa6f 100644 --- a/exo/api/chatgpt_api.py +++ b/exo/api/chatgpt_api.py @@ -425,8 +425,8 @@ class ChatGPTAPI: full_image_url = base_url + str(image_url) await response.write(json.dumps({'images': [{'url': str(full_image_url), 'content_type': 'image/png'}]}).encode('utf-8') + b'\n') - - await response.write_eof() + if is_finished: + await response.write_eof() stream_task = None diff --git a/exo/inference/mlx/models/StableDiffusionPipeline.py b/exo/inference/mlx/models/StableDiffusionPipeline.py index 443887a3..2868da95 100644 --- a/exo/inference/mlx/models/StableDiffusionPipeline.py +++ b/exo/inference/mlx/models/StableDiffusionPipeline.py @@ -198,6 +198,7 @@ class Model(nn.Module): if self.shard_unet.start_layer != -1: with tqdm(total=total_steps,initial=step+1) as pbar: if step 1 else x else: @@ -214,7 +215,6 @@ class Model(nn.Module): if self.shard_vae.is_last_layer(): is_step_finished=True - if t_prev.item() ==0: if self.shard_vae.start_layer != -1: x=self.first_stage_model.decode(x) if self.shard_vae.is_last_layer(): @@ -224,7 +224,8 @@ class Model(nn.Module): x = x.reshape(1, B // 1, H, W, C).transpose(0, 2, 1, 3, 4) x = x.reshape(1 * H, B // 1 * W, C) x = (x * 255).astype(mx.uint8) - is_finished=True + if t_prev.item() ==0: + is_finished=True return x, {'conditioning':conditioning, 'mask':mask,'residual':residual,'x_t_prev':x_t_prev,'is_finished':is_finished,'is_step_finished':is_step_finished, 'step':step, 'total_steps':total_steps} diff --git a/exo/orchestration/standard_node.py b/exo/orchestration/standard_node.py index 055d3fdb..7a72c325 100644 --- a/exo/orchestration/standard_node.py +++ b/exo/orchestration/standard_node.py @@ -477,7 +477,7 @@ class StandardNode(Node): if inference_state['is_step_finished']: inference_state['step']+=1 progress = [inference_state['step'],inference_state['total_steps']] - intermediate_result = progress + intermediate_result = result if progress[0] == progress[1]: intermediate_result = result return intermediate_result, inference_state diff --git a/exo/tinychat/index.js b/exo/tinychat/index.js index 5e1fea9c..fb767369 100644 --- a/exo/tinychat/index.js +++ b/exo/tinychat/index.js @@ -272,9 +272,13 @@ document.addEventListener("alpine:init", () => { this.cstate.messages[this.cstate.messages.length - 1].content = parsed.progress; } else if (parsed.images) { + if (!gottenFirstChunk) { + this.cstate.messages.push({ role: "assistant", content: "" }); + gottenFirstChunk = true; + } const imageUrl = parsed.images[0].url; console.log(imageUrl) - this.cstate.messages[this.cstate.messages.length - 1].content = `![Generated Image](${imageUrl})`; + this.cstate.messages[this.cstate.messages.length - 1].content = `![Generated Image](${imageUrl}?t=${Date.now()})`; } } } From 4b8c4a795fe33f730c294c82d81a8f29046a5009 Mon Sep 17 00:00:00 2001 From: Pranav Veldurthi Date: Sun, 1 Dec 2024 19:31:51 -0500 Subject: [PATCH 05/44] Images stored in system --- exo/api/chatgpt_api.py | 7 ++++--- exo/helpers.py | 21 ++++++++++++++++++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/exo/api/chatgpt_api.py b/exo/api/chatgpt_api.py index af52452d..9ce16381 100644 --- a/exo/api/chatgpt_api.py +++ b/exo/api/chatgpt_api.py @@ -13,7 +13,7 @@ import signal import sys from exo import DEBUG, VERSION from exo.download.download_progress import RepoProgressEvent -from exo.helpers import PrefixDict, shutdown +from exo.helpers import PrefixDict, shutdown, get_exo_images_dir from exo.inference.tokenizers import resolve_tokenizer from exo.orchestration import Node from exo.models import build_base_shard, model_cards, get_repo, pretty_name, get_supported_models @@ -184,7 +184,7 @@ class ChatGPTAPI: self.static_dir = Path(__file__).parent.parent/"tinychat" self.app.router.add_get("/", self.handle_root) self.app.router.add_static("/", self.static_dir, name="static") - self.app.router.add_static('/images/', self.static_dir / 'images', name='static_images') + self.app.router.add_static('/images/', get_exo_images_dir(), name='static_images') self.app.middlewares.append(self.timeout_middleware) self.app.middlewares.append(self.log_request) @@ -416,9 +416,10 @@ class ChatGPTAPI: elif isinstance(result, np.ndarray): im = Image.fromarray(np.array(result)) + images_folder = get_exo_images_dir() # Save the image to a file image_filename = f"{_request_id}.png" - image_path = self.static_dir / "images" / image_filename + image_path = images_folder / image_filename im.save(image_path) image_url = request.app.router['static_images'].url_for(filename=image_filename) base_url = f"{request.scheme}://{request.host}" diff --git a/exo/helpers.py b/exo/helpers.py index 1bba9cd9..ea11bcd9 100644 --- a/exo/helpers.py +++ b/exo/helpers.py @@ -252,4 +252,23 @@ async def shutdown(signal, loop, server): def is_frozen(): return getattr(sys, 'frozen', False) or os.path.basename(sys.executable) == "exo" \ or ('Contents/MacOS' in str(os.path.dirname(sys.executable))) \ - or '__nuitka__' in globals() or getattr(sys, '__compiled__', False) \ No newline at end of file + or '__nuitka__' in globals() or getattr(sys, '__compiled__', False) + + +def get_exo_home() -> Path: + if os.name == "nt": # Check if the OS is Windows + docs_folder = Path(os.environ["USERPROFILE"]) / "Documents" + else: + docs_folder = Path.home() / "Documents" + exo_folder = docs_folder / "Exo" + if not exo_folder.exists(): + exo_folder.mkdir() + return exo_folder + +def get_exo_images_dir() -> Path: + exo_home = get_exo_home() + images_dir = exo_home / "Images" + if not images_dir.exists(): + images_dir.mkdir() + return images_dir + \ No newline at end of file From ca0caad0ae6e86ef10e2830db598109ae9e50bd6 Mon Sep 17 00:00:00 2001 From: Pranav Veldurthi Date: Wed, 4 Dec 2024 22:40:12 -0500 Subject: [PATCH 06/44] Image to image generation --- exo/api/chatgpt_api.py | 26 +- .../mlx/models/StableDiffusionPipeline.py | 70 +++-- exo/inference/mlx/models/sd_models/clip.py | 23 +- exo/inference/mlx/models/sd_models/vae.py | 247 ++++++++++-------- exo/models.py | 2 +- exo/networking/grpc/grpc_peer_handle.py | 3 +- exo/networking/grpc/grpc_server.py | 3 +- exo/networking/grpc/node_service.proto | 1 + exo/networking/grpc/node_service_pb2.py | 98 +++---- exo/networking/grpc/node_service_pb2_grpc.py | 88 +++---- exo/orchestration/node.py | 4 +- exo/orchestration/standard_node.py | 5 +- .../8014d04e-b85a-44a2-88a3-29091c42bff5.png | Bin 416562 -> 0 bytes exo/tinychat/images/README.md | 3 - exo/tinychat/index.html | 12 +- exo/tinychat/index.js | 1 + 16 files changed, 340 insertions(+), 246 deletions(-) delete mode 100644 exo/tinychat/images/8014d04e-b85a-44a2-88a3-29091c42bff5.png delete mode 100644 exo/tinychat/images/README.md diff --git a/exo/api/chatgpt_api.py b/exo/api/chatgpt_api.py index 9ce16381..4d811f20 100644 --- a/exo/api/chatgpt_api.py +++ b/exo/api/chatgpt_api.py @@ -20,6 +20,9 @@ from exo.models import build_base_shard, model_cards, get_repo, pretty_name, get from typing import Callable, Optional from PIL import Image import numpy as np +import base64 +from io import BytesIO +import mlx.core as mx class Message: def __init__(self, role: str, content: Union[str, List[Dict[str, Union[str, Dict[str, str]]]]]): @@ -383,6 +386,7 @@ class ChatGPTAPI: stream = data.get("stream", False) model = data.get("model", "") prompt = data.get("prompt", "") + image_url = data.get("image_url", "") print(f"model: {model}, prompt: {prompt}, stream: {stream}") shard = build_base_shard(model, self.inference_engine_classname) print(f"shard: {shard}") @@ -393,7 +397,11 @@ class ChatGPTAPI: callback_id = f"chatgpt-api-wait-response-{request_id}" callback = self.node.on_token.register(callback_id) try: - await asyncio.wait_for(asyncio.shield(asyncio.create_task(self.node.process_prompt(shard, prompt, request_id=request_id))), timeout=self.response_timeout) + if image_url != "" and image_url != None: + img = self.base64_decode(image_url) + else: + img = None + await asyncio.wait_for(asyncio.shield(asyncio.create_task(self.node.process_prompt(shard, prompt, request_id=request_id, inference_state={"image": img}))), timeout=self.response_timeout) response = web.StreamResponse(status=200, reason='OK', headers={'Content-Type': 'application/octet-stream',"Cache-Control": "no-cache",}) @@ -454,3 +462,19 @@ class ChatGPTAPI: await runner.setup() site = web.TCPSite(runner, host, port) await site.start() + + def base64_decode(self, base64_string): + #decode and reshape image + if base64_string.startswith('data:image'): + base64_string = base64_string.split(',')[1] + image_data = base64.b64decode(base64_string) + img = Image.open(BytesIO(image_data)) + W, H = (dim - dim % 64 for dim in (img.width, img.height)) + if W != img.width or H != img.height: + print(f"Warning: image shape is not divisible by 64, downsampling to {W}x{H}") + img = img.resize((W, H), Image.NEAREST) # use desired downsampling filter + img = mx.array(np.array(img)) + img = (img[:, :, :3].astype(mx.float32) / 255) * 2 - 1 + img = img[None] + return img + diff --git a/exo/inference/mlx/models/StableDiffusionPipeline.py b/exo/inference/mlx/models/StableDiffusionPipeline.py index da71cd6f..1f3bd1ca 100644 --- a/exo/inference/mlx/models/StableDiffusionPipeline.py +++ b/exo/inference/mlx/models/StableDiffusionPipeline.py @@ -157,7 +157,7 @@ class Model(nn.Module): self.config = config self.model_path = config.vae['path'].split('/vae')[0] self.shard = config.shard - self.shard_clip, self.shard_unet, self.shard_vae = model_shards(config.shard) + self.shard_clip, self.shard_encoder, self.shard_unet, self.shard_decoder = model_shards(config.shard) self.config_clip=CLIPArgs.from_dict(config.text_encoder['config']) if self.shard_clip.start_layer != -1: self.text_encoder = CLIPTextModel(self.config_clip, shard=self.shard_clip) @@ -172,26 +172,41 @@ class Model(nn.Module): else: self.unet = nn.Identity() self.config_vae=VAEArgs.from_dict(config.vae['config']) - if self.shard_vae.start_layer != -1: - self.first_stage_model=Autoencoder(self.config_vae, self.shard_vae) + if self.shard_encoder.start_layer != -1: + self.encoder=Autoencoder(self.config_vae, self.shard_encoder, "vae_encoder") else: - self.first_stage_model = nn.Identity() + self.encoder = nn.Identity() + if self.shard_decoder.start_layer != -1: + self.decoder=Autoencoder(self.config_vae, self.shard_decoder, "vae_decoder") + else: + self.decoder = nn.Identity() - def __call__(self,x, step= 0, cfg_weight: float = 7.5,total_steps=50,conditioning=None,mask=None,residual=None,x_t_prev=None,is_finished=False,is_step_finished=False): - t, t_prev = self.sampler.current_timestep(step=step, total_steps=total_steps) + def __call__(self,x, step= 0, cfg_weight: float = 7.5,total_steps=50,conditioning=None,mask=None,residual=None,x_t_prev=None,is_finished=False,is_step_finished=False, image=None, strength=0.7, start_step=None): + t, t_prev = self.sampler.current_timestep(step=step, total_steps=total_steps, start_time=start_step) is_finished = False is_step_finished = False if t.item()==1000: if self.shard_clip.start_layer == 0: conditioning = x if self.shard_clip.start_layer != -1: - conditioning, mask= self.text_encoder(conditioning,mask) seed = int(time.time()) mx.random.seed(seed) - if self.shard_unet.is_first_layer(): - x = self.sampler.sample_prior((1, *(64, 64), self.config_vae.latent_channels_in), dtype=mx.float32) - x_t_prev=x + if image is None: + if self.shard_encoder.is_last_layer(): + x = self.sampler.sample_prior((1, *(64, 64), self.config_vae.latent_channels_in), dtype=mx.float32) + x_t_prev=x + start_step = self.sampler.max_time + else: + if self.shard_encoder.start_layer != -1: + image= self.encoder.encode(image) + if self.shard_encoder.is_last_layer(): + start_step = self.sampler.max_time*strength + total_steps = int(total_steps*strength) + image = mx.broadcast_to(image, (1,) + image.shape[1:]) + x_t_prev=self.sampler.add_noise(image, mx.array(start_step)) + image = None + t, t_prev = self.sampler.current_timestep(step=step, total_steps=total_steps, start_time=start_step) # Perform the denoising loop if self.shard_unet.start_layer != -1: with tqdm(total=total_steps,initial=step+1) as pbar: @@ -211,28 +226,32 @@ class Model(nn.Module): x_t_prev=x mx.eval(x) - if self.shard_vae.is_last_layer(): + if self.shard_decoder.is_last_layer(): is_step_finished=True - if self.shard_vae.start_layer != -1: - x=self.first_stage_model.decode(x) - if self.shard_vae.is_last_layer(): + if self.shard_decoder.start_layer != -1: + x=self.decoder.decode(x) + if self.shard_decoder.is_last_layer(): x = mx.clip(x / 2 + 0.5, 0, 1) - x = mx.pad(x, [(0, 0), (8, 8), (8, 8), (0, 0)]) B, H, W, C = x.shape x = x.reshape(1, B // 1, H, W, C).transpose(0, 2, 1, 3, 4) x = x.reshape(1 * H, B // 1 * W, C) x = (x * 255).astype(mx.uint8) if t_prev.item() ==0: is_finished=True + mx.eval(x) - return x, {'conditioning':conditioning, 'mask':mask,'residual':residual,'x_t_prev':x_t_prev,'is_finished':is_finished,'is_step_finished':is_step_finished, 'step':step, 'total_steps':total_steps} + return x, {'conditioning':conditioning, 'mask':mask,'residual':residual,'x_t_prev':x_t_prev,'is_finished':is_finished,'is_step_finished':is_step_finished, 'step':step, 'total_steps':total_steps, 'start_step':start_step, 'image':image} def load(self): - if self.shard_vae.start_layer != -1: + if self.shard_encoder.start_layer != -1: vae_weights = mx.load(self.config_vae.weight_files[0]) - vae_weights = self.first_stage_model.sanitize(vae_weights) - self.first_stage_model.load_weights(list(vae_weights.items()), strict=True) + vae_weights = self.encoder.sanitize(vae_weights) + self.encoder.load_weights(list(vae_weights.items()), strict=True) + if self.shard_decoder.start_layer != -1: + vae_weights = mx.load(self.config_vae.weight_files[0]) + vae_weights = self.decoder.sanitize(vae_weights) + self.decoder.load_weights(list(vae_weights.items()), strict=True) if self.shard_clip.start_layer != -1: clip_weights = mx.load(self.config_clip.weight_files[0]) clip_weights = self.text_encoder.sanitize(clip_weights) @@ -242,7 +261,6 @@ class Model(nn.Module): unet_weights = self.unet.sanitize(unet_weights) self.unet.load_weights(list(unet_weights.items()), strict=True) - def model_shards(shard:ShardConfig): def create_shard(shard, model_ranges): start_layer = shard.start_layer @@ -268,9 +286,10 @@ def model_shards(shard:ShardConfig): # Define the ranges for different models model_ranges = { - 'clip': (0, 23), - 'unet':(23,32), - 'vae': (32, 37) # Example range for unet + 'clip': (0, 12), + 'vae_encoder':(12,17), + 'unet':(17,26), + 'vae_decoder': (26, 31) # Example range for unet } # Call the function and get the shards for all models @@ -278,10 +297,11 @@ def model_shards(shard:ShardConfig): # Access individual shards shard_clip = shards['clip'] + shard_encoder = shards['vae_encoder'] shard_unet = shards['unet'] - shard_vae = shards['vae'] + shard_decoder = shards['vae_decoder'] - return shard_clip, shard_unet, shard_vae + return shard_clip, shard_encoder, shard_unet, shard_decoder diff --git a/exo/inference/mlx/models/sd_models/clip.py b/exo/inference/mlx/models/sd_models/clip.py index 78d95321..849460f4 100644 --- a/exo/inference/mlx/models/sd_models/clip.py +++ b/exo/inference/mlx/models/sd_models/clip.py @@ -1,5 +1,6 @@ # Adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/clip.py +import math from dataclasses import dataclass from typing import List, Optional @@ -99,13 +100,15 @@ class CLIPTextModel(nn.Module): super().__init__() self.shard = shard - + self.layers_range = range(self.shard.start_layer*2, self.shard.end_layer*2+2) if self.shard.is_first_layer(): self.token_embedding = nn.Embedding(config.vocab_size, config.model_dims) self.position_embedding = nn.Embedding(config.max_length, config.model_dims) self.layers = [] - for i in range(config.num_layers): - if self.shard.start_layer <= i <= self.shard.end_layer: + for i in range(math.ceil(config.num_layers/2)): + if 2*i in self.layers_range: + self.layers.append(CLIPEncoderLayer(config.model_dims, config.num_heads, config.hidden_act)) + if 2*i+1 in self.layers_range and 2*i+1 < config.num_layers: self.layers.append(CLIPEncoderLayer(config.model_dims, config.num_heads, config.hidden_act)) else: self.layers.append(IdentityBlock()) @@ -136,22 +139,18 @@ class CLIPTextModel(nn.Module): # Compute the features from the transformer mask = self._get_mask(N, x.dtype) - hidden_states = [] for l in self.layers: x = l(x, mask) - hidden_states.append(x) # Apply the final layernorm and return if self.shard.is_last_layer(): x = self.final_layer_norm(x) - last_hidden_state = x - + return x, mask def sanitize(self, weights): sanitized_weights = {} - for key, value in weights.items(): if "position_ids" in key: continue @@ -180,13 +179,13 @@ class CLIPTextModel(nn.Module): if key.startswith("layers."): layer_num = int(key.split(".")[1]) - if layer_num < self.shard.start_layer or layer_num > self.shard.end_layer: + if layer_num not in self.layers_range: continue - if not self.shard.start_layer == 0 and "embedding" in key: + if not self.shard.is_first_layer() and "embedding" in key: continue - if not self.shard.end_layer == 22 and key.startswith("final_layer_norm"): + if not self.shard.is_last_layer() and key.startswith("final_layer_norm"): continue - if not self.shard.end_layer == 22 and key.startswith("text_projection"): + if not self.shard.is_last_layer() and key.startswith("text_projection"): continue sanitized_weights[key] = value return sanitized_weights diff --git a/exo/inference/mlx/models/sd_models/vae.py b/exo/inference/mlx/models/sd_models/vae.py index 39037bdf..0f148517 100644 --- a/exo/inference/mlx/models/sd_models/vae.py +++ b/exo/inference/mlx/models/sd_models/vae.py @@ -128,62 +128,75 @@ class Encoder(nn.Module): def __init__( self, in_channels: int, - out_channels: int, + latent_channels_out: int, block_out_channels: List[int] = [64], layers_per_block: int = 2, resnet_groups: int = 32, + layers_range: List[int] = [], + shard: Shard = field(default_factory=lambda: Shard("", 0, 0, 0)) ): super().__init__() - - self.conv_in = nn.Conv2d( - in_channels, block_out_channels[0], kernel_size=3, stride=1, padding=1 - ) + self.layers_range = layers_range + self.shard = shard + if self.shard.is_first_layer(): + self.conv_in = nn.Conv2d( + in_channels, block_out_channels[0], kernel_size=3, stride=1, padding=1 + ) channels = [block_out_channels[0]] + list(block_out_channels) - self.down_blocks = [ - EncoderDecoderBlock2D( - in_channels, - out_channels, - num_layers=layers_per_block, - resnet_groups=resnet_groups, - add_downsample=i < len(block_out_channels) - 1, - add_upsample=False, + self.down_blocks = [] + current_layer = 1 + for i, (in_channels, out_channels) in enumerate(zip(channels, channels[1:])): + if current_layer in self.layers_range: + self.down_blocks.append( + EncoderDecoderBlock2D( + in_channels, + out_channels, + num_layers=layers_per_block, + resnet_groups=resnet_groups, + add_downsample=i < len(block_out_channels) - 1, + add_upsample=False, + ) + ) + else: + self.down_blocks.append(IdentityBlock()) + current_layer += 1 + + if self.shard.is_last_layer(): + self.mid_blocks = [ + ResnetBlock2D( + in_channels=block_out_channels[-1], + out_channels=block_out_channels[-1], + groups=resnet_groups, + ), + Attention(block_out_channels[-1], resnet_groups), + ResnetBlock2D( + in_channels=block_out_channels[-1], + out_channels=block_out_channels[-1], + groups=resnet_groups, + ), + ] + + self.conv_norm_out = nn.GroupNorm( + resnet_groups, block_out_channels[-1], pytorch_compatible=True ) - for i, (in_channels, out_channels) in enumerate(zip(channels, channels[1:])) - ] - - self.mid_blocks = [ - ResnetBlock2D( - in_channels=block_out_channels[-1], - out_channels=block_out_channels[-1], - groups=resnet_groups, - ), - Attention(block_out_channels[-1], resnet_groups), - ResnetBlock2D( - in_channels=block_out_channels[-1], - out_channels=block_out_channels[-1], - groups=resnet_groups, - ), - ] - - self.conv_norm_out = nn.GroupNorm( - resnet_groups, block_out_channels[-1], pytorch_compatible=True - ) - self.conv_out = nn.Conv2d(block_out_channels[-1], out_channels, 3, padding=1) + self.conv_out = nn.Conv2d(block_out_channels[-1], latent_channels_out, 3, padding=1) def __call__(self, x): - x = self.conv_in(x) + if self.shard.is_first_layer(): + x = self.conv_in(x) for l in self.down_blocks: x = l(x) - x = self.mid_blocks[0](x) - x = self.mid_blocks[1](x) - x = self.mid_blocks[2](x) + if self.shard.is_last_layer(): + x = self.mid_blocks[0](x) + x = self.mid_blocks[1](x) + x = self.mid_blocks[2](x) - x = self.conv_norm_out(x) - x = nn.silu(x) - x = self.conv_out(x) + x = self.conv_norm_out(x) + x = nn.silu(x) + x = self.conv_out(x) return x @@ -271,7 +284,7 @@ class Decoder(nn.Module): class Autoencoder(nn.Module): """The autoencoder that allows us to perform diffusion in the latent space.""" - def __init__(self, config: AutoencoderConfig, shard: Shard): + def __init__(self, config: AutoencoderConfig, shard: Shard, model_shard: str): super().__init__() self.shard = shard self.start_layer = shard.start_layer @@ -279,46 +292,51 @@ class Autoencoder(nn.Module): self.layers_range = list(range(self.start_layer, self.end_layer+1)) self.latent_channels = config.latent_channels_in self.scaling_factor = config.scaling_factor - self.decoder_only = True # stable diffusion text to speech only uses decoder from the autoencoder - if not self.decoder_only: + self.model_shard = model_shard + if self.model_shard == "vae_encoder": self.encoder = Encoder( config.in_channels, config.latent_channels_out, config.block_out_channels, config.layers_per_block, resnet_groups=config.norm_num_groups, + layers_range=self.layers_range, + shard=shard ) - self.quant_proj = nn.Linear( - config.latent_channels_out, config.latent_channels_out - ) - self.decoder = Decoder( - config.latent_channels_in, - config.out_channels, - shard, - self.layers_range, - config.block_out_channels, - config.layers_per_block + 1, - resnet_groups=config.norm_num_groups, - ) - if 0 in self.layers_range: - self.post_quant_proj = nn.Linear( - config.latent_channels_in, config.latent_channels_in + if self.shard.is_last_layer(): + self.quant_proj = nn.Linear( + config.latent_channels_out, config.latent_channels_out + ) + if self.model_shard == "vae_decoder": + self.decoder = Decoder( + config.latent_channels_in, + config.out_channels, + shard, + self.layers_range, + config.block_out_channels, + config.layers_per_block + 1, + resnet_groups=config.norm_num_groups, ) + if self.shard.is_first_layer(): + self.post_quant_proj = nn.Linear( + config.latent_channels_in, config.latent_channels_in + ) def decode(self, z): - if 0 in self.layers_range: + if self.shard.is_first_layer(): z = z / self.scaling_factor z=self.post_quant_proj(z) return self.decoder(z) def encode(self, x): x = self.encoder(x) - x = self.quant_proj(x) - mean, logvar = x.split(2, axis=-1) - mean = mean * self.scaling_factor - logvar = logvar + 2 * math.log(self.scaling_factor) - - return mean, logvar + if self.shard.is_last_layer(): + x = self.quant_proj(x) + mean, logvar = x.split(2, axis=-1) + mean = mean * self.scaling_factor + logvar = logvar + 2 * math.log(self.scaling_factor) + x = mean + return x def __call__(self, x, key=None): mean, logvar = self.encode(x) @@ -328,46 +346,53 @@ class Autoencoder(nn.Module): return dict(x_hat=x_hat, z=z, mean=mean, logvar=logvar) def sanitize(self, weights): + shard = self.shard layers = self.layers_range sanitized_weights = {} for key, value in weights.items(): - if 'decoder' in key and self.decoder_only: - if "downsamplers" in key: - key = key.replace("downsamplers.0.conv", "downsample") - if "upsamplers" in key: - key = key.replace("upsamplers.0.conv", "upsample") - # Map attention layers - if "key" in key: - key = key.replace("key", "key_proj") - if "proj_attn" in key: - key = key.replace("proj_attn", "out_proj") - if "query" in key: - key = key.replace("query", "query_proj") - if "value" in key: - key = key.replace("value", "value_proj") + if "downsamplers" in key: + key = key.replace("downsamplers.0.conv", "downsample") + if "upsamplers" in key: + key = key.replace("upsamplers.0.conv", "upsample") - # Map the mid block - if "mid_block.resnets.0" in key: - key = key.replace("mid_block.resnets.0", "mid_blocks.0") - if "mid_block.attentions.0" in key: - key = key.replace("mid_block.attentions.0", "mid_blocks.1") - if "mid_block.resnets.1" in key: - key = key.replace("mid_block.resnets.1", "mid_blocks.2") - - # Map the quant/post_quant layers - if "quant_conv" in key: - key = key.replace("quant_conv", "quant_proj") - value = value.squeeze() - - # Map the conv_shortcut to linear - if "conv_shortcut.weight" in key: - value = value.squeeze() + # Map attention layers + if "key" in key: + key = key.replace("key", "key_proj") + if "proj_attn" in key: + key = key.replace("proj_attn", "out_proj") + if "query" in key: + key = key.replace("query", "query_proj") + if "value" in key: + key = key.replace("value", "value_proj") - if len(value.shape) == 4: - value = value.transpose(0, 2, 3, 1) - value = value.reshape(-1).reshape(value.shape) + # Map the mid block + if "mid_block.resnets.0" in key: + key = key.replace("mid_block.resnets.0", "mid_blocks.0") + if "mid_block.attentions.0" in key: + key = key.replace("mid_block.attentions.0", "mid_blocks.1") + if "mid_block.resnets.1" in key: + key = key.replace("mid_block.resnets.1", "mid_blocks.2") + + # Map the quant/post_quant layers + if "quant_conv" in key: + key = key.replace("quant_conv", "quant_proj") + value = value.squeeze() + + # Map the conv_shortcut to linear + if "conv_shortcut.weight" in key: + value = value.squeeze() + if len(value.shape) == 4: + value = value.transpose(0, 2, 3, 1) + value = value.reshape(-1).reshape(value.shape) + + + if "post_quant_conv" in key : + key = key.replace("quant_conv", "quant_proj") + value = value.squeeze() + + if 'decoder' in key and self.model_shard == "vae_decoder": if key.startswith("decoder.mid_blocks."): if 0 in layers: sanitized_weights[key] = value @@ -381,10 +406,24 @@ class Autoencoder(nn.Module): sanitized_weights[key] = value if key.startswith("decoder.conv_out") and 4 in layers: sanitized_weights[key] = value - - if "post_quant_conv" in key and 0 in layers: - key = key.replace("quant_conv", "quant_proj") - value = value.squeeze() - sanitized_weights[key] = value + if self.model_shard == "vae_decoder": + if key.startswith("post_quant_proj") and 0 in layers: + sanitized_weights[key] = value + if self.model_shard == "vae_encoder": + if key.startswith("encoder."): + if "conv_in" in key and shard.is_first_layer(): + sanitized_weights[key] = value + if key.startswith("encoder.down_blocks."): + layer_num = int(key.split(".")[2])+1 + if layer_num in layers: + sanitized_weights[key] = value + if key.startswith("encoder.mid_blocks.") and shard.is_last_layer(): + sanitized_weights[key] = value + if "conv_norm_out" in key and shard.is_last_layer(): + sanitized_weights[key] = value + if "conv_out" in key and shard.is_last_layer(): + sanitized_weights[key] = value + if key.startswith("quant_proj") and shard.is_last_layer(): + sanitized_weights[key] = value return sanitized_weights diff --git a/exo/models.py b/exo/models.py index 8262251a..2f34e257 100644 --- a/exo/models.py +++ b/exo/models.py @@ -81,7 +81,7 @@ model_cards = { "gemma2-9b": { "layers": 42, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/gemma-2-9b-it-4bit", }, }, "gemma2-27b": { "layers": 46, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/gemma-2-27b-it-4bit", }, }, # stable diffusion - "stable-diffusion-2-1-base": { "layers": 37, "repo": { "MLXDynamicShardInferenceEngine": "stabilityai/stable-diffusion-2-1-base" } }, + "stable-diffusion-2-1-base": { "layers": 31, "repo": { "MLXDynamicShardInferenceEngine": "stabilityai/stable-diffusion-2-1-base" } }, # dummy "dummy": { "layers": 8, "repo": { "DummyInferenceEngine": "dummy", }, }, } diff --git a/exo/networking/grpc/grpc_peer_handle.py b/exo/networking/grpc/grpc_peer_handle.py index 98220e33..25d441f2 100644 --- a/exo/networking/grpc/grpc_peer_handle.py +++ b/exo/networking/grpc/grpc_peer_handle.py @@ -68,7 +68,7 @@ class GRPCPeerHandle(PeerHandle): traceback.print_exc() return False - async def send_prompt(self, shard: Shard, prompt: str, request_id: Optional[str] = None) -> Optional[np.array]: + async def send_prompt(self, shard: Shard, prompt: str, inference_state: Optional[dict] = None, request_id: Optional[str] = None) -> Optional[np.array]: request = node_service_pb2.PromptRequest( prompt=prompt, shard=node_service_pb2.Shard( @@ -78,6 +78,7 @@ class GRPCPeerHandle(PeerHandle): n_layers=shard.n_layers, ), request_id=request_id, + inference_state=self.serialize_inference_state(inference_state) ) response = await self.stub.SendPrompt(request) diff --git a/exo/networking/grpc/grpc_server.py b/exo/networking/grpc/grpc_server.py index c03ba507..8155e642 100644 --- a/exo/networking/grpc/grpc_server.py +++ b/exo/networking/grpc/grpc_server.py @@ -52,7 +52,8 @@ class GRPCServer(node_service_pb2_grpc.NodeServiceServicer): ) prompt = request.prompt request_id = request.request_id - result = await self.node.process_prompt(shard, prompt, request_id) + inference_state = self.deserialize_inference_state(request.inference_state) + result = await self.node.process_prompt(shard, prompt, request_id, inference_state) if DEBUG >= 5: print(f"SendPrompt {shard=} {prompt=} {request_id=} result: {result}") tensor_data = result.tobytes() if result is not None else None return node_service_pb2.Tensor(tensor_data=tensor_data, shape=result.shape, dtype=str(result.dtype)) if result is not None else node_service_pb2.Tensor() diff --git a/exo/networking/grpc/node_service.proto b/exo/networking/grpc/node_service.proto index a04c997b..a98d219c 100644 --- a/exo/networking/grpc/node_service.proto +++ b/exo/networking/grpc/node_service.proto @@ -23,6 +23,7 @@ message PromptRequest { Shard shard = 1; string prompt = 2; optional string request_id = 3; + optional InferenceState inference_state = 4; } message TensorRequest { diff --git a/exo/networking/grpc/node_service_pb2.py b/exo/networking/grpc/node_service_pb2.py index 78f4a75b..deb9074e 100644 --- a/exo/networking/grpc/node_service_pb2.py +++ b/exo/networking/grpc/node_service_pb2.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: exo/networking/grpc/node_service.proto +# source: node_service.proto # Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor @@ -14,11 +14,11 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&exo/networking/grpc/node_service.proto\x12\x0cnode_service\"S\n\x05Shard\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x13\n\x0bstart_layer\x18\x02 \x01(\x05\x12\x11\n\tend_layer\x18\x03 \x01(\x05\x12\x10\n\x08n_layers\x18\x04 \x01(\x05\"k\n\rPromptRequest\x12\"\n\x05shard\x18\x01 \x01(\x0b\x32\x13.node_service.Shard\x12\x0e\n\x06prompt\x18\x02 \x01(\t\x12\x17\n\nrequest_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd1\x01\n\rTensorRequest\x12\"\n\x05shard\x18\x01 \x01(\x0b\x32\x13.node_service.Shard\x12$\n\x06tensor\x18\x02 \x01(\x0b\x32\x14.node_service.Tensor\x12\x17\n\nrequest_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12:\n\x0finference_state\x18\x04 \x01(\x0b\x32\x1c.node_service.InferenceStateH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x12\n\x10_inference_state\"/\n\x19GetInferenceResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"\\\n\x0fInferenceResult\x12)\n\x06tensor\x18\x01 \x01(\x0b\x32\x14.node_service.TensorH\x00\x88\x01\x01\x12\x13\n\x0bis_finished\x18\x02 \x01(\x08\x42\t\n\x07_tensor\";\n\x06Tensor\x12\x13\n\x0btensor_data\x18\x01 \x01(\x0c\x12\r\n\x05shape\x18\x02 \x03(\x05\x12\r\n\x05\x64type\x18\x03 \x01(\t\"3\n\nTensorList\x12%\n\x07tensors\x18\x01 \x03(\x0b\x32\x14.node_service.Tensor\"\xd2\x02\n\x0eInferenceState\x12\x41\n\x0btensor_data\x18\x01 \x03(\x0b\x32,.node_service.InferenceState.TensorDataEntry\x12J\n\x10tensor_list_data\x18\x02 \x03(\x0b\x32\x30.node_service.InferenceState.TensorListDataEntry\x12\x17\n\x0fother_data_json\x18\x03 \x01(\t\x1aG\n\x0fTensorDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.node_service.Tensor:\x02\x38\x01\x1aO\n\x13TensorListDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.node_service.TensorList:\x02\x38\x01\"<\n\x16\x43ollectTopologyRequest\x12\x0f\n\x07visited\x18\x01 \x03(\t\x12\x11\n\tmax_depth\x18\x02 \x01(\x05\"\x8e\x02\n\x08Topology\x12\x30\n\x05nodes\x18\x01 \x03(\x0b\x32!.node_service.Topology.NodesEntry\x12\x39\n\npeer_graph\x18\x02 \x03(\x0b\x32%.node_service.Topology.PeerGraphEntry\x1aN\n\nNodesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .node_service.DeviceCapabilities:\x02\x38\x01\x1a\x45\n\x0ePeerGraphEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.node_service.Peers:\x02\x38\x01\"\x19\n\x05Peers\x12\x10\n\x08peer_ids\x18\x01 \x03(\t\"7\n\x0b\x44\x65viceFlops\x12\x0c\n\x04\x66p32\x18\x01 \x01(\x02\x12\x0c\n\x04\x66p16\x18\x02 \x01(\x02\x12\x0c\n\x04int8\x18\x03 \x01(\x02\"k\n\x12\x44\x65viceCapabilities\x12\r\n\x05model\x18\x01 \x01(\t\x12\x0c\n\x04\x63hip\x18\x02 \x01(\t\x12\x0e\n\x06memory\x18\x03 \x01(\x05\x12(\n\x05\x66lops\x18\x04 \x01(\x0b\x32\x19.node_service.DeviceFlops\"\x82\x01\n\x11SendResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0e\n\x06result\x18\x02 \x03(\x05\x12)\n\x06tensor\x18\x03 \x01(\x0b\x32\x14.node_service.TensorH\x00\x88\x01\x01\x12\x13\n\x0bis_finished\x18\x04 \x01(\x08\x42\t\n\x07_tensor\"=\n\x17SendOpaqueStatusRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\"\x14\n\x12HealthCheckRequest\")\n\x13HealthCheckResponse\x12\x12\n\nis_healthy\x18\x01 \x01(\x08\"\x07\n\x05\x45mpty2\xb4\x04\n\x0bNodeService\x12\x41\n\nSendPrompt\x12\x1b.node_service.PromptRequest\x1a\x14.node_service.Tensor\"\x00\x12\x41\n\nSendTensor\x12\x1b.node_service.TensorRequest\x1a\x14.node_service.Tensor\"\x00\x12^\n\x12GetInferenceResult\x12\'.node_service.GetInferenceResultRequest\x1a\x1d.node_service.InferenceResult\"\x00\x12Q\n\x0f\x43ollectTopology\x12$.node_service.CollectTopologyRequest\x1a\x16.node_service.Topology\"\x00\x12\x44\n\nSendResult\x12\x1f.node_service.SendResultRequest\x1a\x13.node_service.Empty\"\x00\x12P\n\x10SendOpaqueStatus\x12%.node_service.SendOpaqueStatusRequest\x1a\x13.node_service.Empty\"\x00\x12T\n\x0bHealthCheck\x12 .node_service.HealthCheckRequest\x1a!.node_service.HealthCheckResponse\"\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12node_service.proto\x12\x0cnode_service\"S\n\x05Shard\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x13\n\x0bstart_layer\x18\x02 \x01(\x05\x12\x11\n\tend_layer\x18\x03 \x01(\x05\x12\x10\n\x08n_layers\x18\x04 \x01(\x05\"\xbb\x01\n\rPromptRequest\x12\"\n\x05shard\x18\x01 \x01(\x0b\x32\x13.node_service.Shard\x12\x0e\n\x06prompt\x18\x02 \x01(\t\x12\x17\n\nrequest_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12:\n\x0finference_state\x18\x04 \x01(\x0b\x32\x1c.node_service.InferenceStateH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x12\n\x10_inference_state\"\xd1\x01\n\rTensorRequest\x12\"\n\x05shard\x18\x01 \x01(\x0b\x32\x13.node_service.Shard\x12$\n\x06tensor\x18\x02 \x01(\x0b\x32\x14.node_service.Tensor\x12\x17\n\nrequest_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12:\n\x0finference_state\x18\x04 \x01(\x0b\x32\x1c.node_service.InferenceStateH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x12\n\x10_inference_state\"/\n\x19GetInferenceResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"\\\n\x0fInferenceResult\x12)\n\x06tensor\x18\x01 \x01(\x0b\x32\x14.node_service.TensorH\x00\x88\x01\x01\x12\x13\n\x0bis_finished\x18\x02 \x01(\x08\x42\t\n\x07_tensor\";\n\x06Tensor\x12\x13\n\x0btensor_data\x18\x01 \x01(\x0c\x12\r\n\x05shape\x18\x02 \x03(\x05\x12\r\n\x05\x64type\x18\x03 \x01(\t\"3\n\nTensorList\x12%\n\x07tensors\x18\x01 \x03(\x0b\x32\x14.node_service.Tensor\"\xd2\x02\n\x0eInferenceState\x12\x41\n\x0btensor_data\x18\x01 \x03(\x0b\x32,.node_service.InferenceState.TensorDataEntry\x12J\n\x10tensor_list_data\x18\x02 \x03(\x0b\x32\x30.node_service.InferenceState.TensorListDataEntry\x12\x17\n\x0fother_data_json\x18\x03 \x01(\t\x1aG\n\x0fTensorDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.node_service.Tensor:\x02\x38\x01\x1aO\n\x13TensorListDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.node_service.TensorList:\x02\x38\x01\"<\n\x16\x43ollectTopologyRequest\x12\x0f\n\x07visited\x18\x01 \x03(\t\x12\x11\n\tmax_depth\x18\x02 \x01(\x05\"\x8e\x02\n\x08Topology\x12\x30\n\x05nodes\x18\x01 \x03(\x0b\x32!.node_service.Topology.NodesEntry\x12\x39\n\npeer_graph\x18\x02 \x03(\x0b\x32%.node_service.Topology.PeerGraphEntry\x1aN\n\nNodesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .node_service.DeviceCapabilities:\x02\x38\x01\x1a\x45\n\x0ePeerGraphEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.node_service.Peers:\x02\x38\x01\"\x19\n\x05Peers\x12\x10\n\x08peer_ids\x18\x01 \x03(\t\"7\n\x0b\x44\x65viceFlops\x12\x0c\n\x04\x66p32\x18\x01 \x01(\x02\x12\x0c\n\x04\x66p16\x18\x02 \x01(\x02\x12\x0c\n\x04int8\x18\x03 \x01(\x02\"k\n\x12\x44\x65viceCapabilities\x12\r\n\x05model\x18\x01 \x01(\t\x12\x0c\n\x04\x63hip\x18\x02 \x01(\t\x12\x0e\n\x06memory\x18\x03 \x01(\x05\x12(\n\x05\x66lops\x18\x04 \x01(\x0b\x32\x19.node_service.DeviceFlops\"\x82\x01\n\x11SendResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0e\n\x06result\x18\x02 \x03(\x05\x12)\n\x06tensor\x18\x03 \x01(\x0b\x32\x14.node_service.TensorH\x00\x88\x01\x01\x12\x13\n\x0bis_finished\x18\x04 \x01(\x08\x42\t\n\x07_tensor\"=\n\x17SendOpaqueStatusRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\"\x14\n\x12HealthCheckRequest\")\n\x13HealthCheckResponse\x12\x12\n\nis_healthy\x18\x01 \x01(\x08\"\x07\n\x05\x45mpty2\xb4\x04\n\x0bNodeService\x12\x41\n\nSendPrompt\x12\x1b.node_service.PromptRequest\x1a\x14.node_service.Tensor\"\x00\x12\x41\n\nSendTensor\x12\x1b.node_service.TensorRequest\x1a\x14.node_service.Tensor\"\x00\x12^\n\x12GetInferenceResult\x12\'.node_service.GetInferenceResultRequest\x1a\x1d.node_service.InferenceResult\"\x00\x12Q\n\x0f\x43ollectTopology\x12$.node_service.CollectTopologyRequest\x1a\x16.node_service.Topology\"\x00\x12\x44\n\nSendResult\x12\x1f.node_service.SendResultRequest\x1a\x13.node_service.Empty\"\x00\x12P\n\x10SendOpaqueStatus\x12%.node_service.SendOpaqueStatusRequest\x1a\x13.node_service.Empty\"\x00\x12T\n\x0bHealthCheck\x12 .node_service.HealthCheckRequest\x1a!.node_service.HealthCheckResponse\"\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'exo.networking.grpc.node_service_pb2', _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'node_service_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None _globals['_INFERENCESTATE_TENSORDATAENTRY']._loaded_options = None @@ -29,50 +29,50 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['_TOPOLOGY_NODESENTRY']._serialized_options = b'8\001' _globals['_TOPOLOGY_PEERGRAPHENTRY']._loaded_options = None _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_options = b'8\001' - _globals['_SHARD']._serialized_start=56 - _globals['_SHARD']._serialized_end=139 - _globals['_PROMPTREQUEST']._serialized_start=141 - _globals['_PROMPTREQUEST']._serialized_end=248 - _globals['_TENSORREQUEST']._serialized_start=251 - _globals['_TENSORREQUEST']._serialized_end=460 - _globals['_GETINFERENCERESULTREQUEST']._serialized_start=462 - _globals['_GETINFERENCERESULTREQUEST']._serialized_end=509 - _globals['_INFERENCERESULT']._serialized_start=511 - _globals['_INFERENCERESULT']._serialized_end=603 - _globals['_TENSOR']._serialized_start=605 - _globals['_TENSOR']._serialized_end=664 - _globals['_TENSORLIST']._serialized_start=666 - _globals['_TENSORLIST']._serialized_end=717 - _globals['_INFERENCESTATE']._serialized_start=720 - _globals['_INFERENCESTATE']._serialized_end=1058 - _globals['_INFERENCESTATE_TENSORDATAENTRY']._serialized_start=906 - _globals['_INFERENCESTATE_TENSORDATAENTRY']._serialized_end=977 - _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._serialized_start=979 - _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._serialized_end=1058 - _globals['_COLLECTTOPOLOGYREQUEST']._serialized_start=1060 - _globals['_COLLECTTOPOLOGYREQUEST']._serialized_end=1120 - _globals['_TOPOLOGY']._serialized_start=1123 - _globals['_TOPOLOGY']._serialized_end=1393 - _globals['_TOPOLOGY_NODESENTRY']._serialized_start=1244 - _globals['_TOPOLOGY_NODESENTRY']._serialized_end=1322 - _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_start=1324 - _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_end=1393 - _globals['_PEERS']._serialized_start=1395 - _globals['_PEERS']._serialized_end=1420 - _globals['_DEVICEFLOPS']._serialized_start=1422 - _globals['_DEVICEFLOPS']._serialized_end=1477 - _globals['_DEVICECAPABILITIES']._serialized_start=1479 - _globals['_DEVICECAPABILITIES']._serialized_end=1586 - _globals['_SENDRESULTREQUEST']._serialized_start=1589 - _globals['_SENDRESULTREQUEST']._serialized_end=1719 - _globals['_SENDOPAQUESTATUSREQUEST']._serialized_start=1721 - _globals['_SENDOPAQUESTATUSREQUEST']._serialized_end=1782 - _globals['_HEALTHCHECKREQUEST']._serialized_start=1784 - _globals['_HEALTHCHECKREQUEST']._serialized_end=1804 - _globals['_HEALTHCHECKRESPONSE']._serialized_start=1806 - _globals['_HEALTHCHECKRESPONSE']._serialized_end=1847 - _globals['_EMPTY']._serialized_start=1849 - _globals['_EMPTY']._serialized_end=1856 - _globals['_NODESERVICE']._serialized_start=1859 - _globals['_NODESERVICE']._serialized_end=2423 + _globals['_SHARD']._serialized_start=36 + _globals['_SHARD']._serialized_end=119 + _globals['_PROMPTREQUEST']._serialized_start=122 + _globals['_PROMPTREQUEST']._serialized_end=309 + _globals['_TENSORREQUEST']._serialized_start=312 + _globals['_TENSORREQUEST']._serialized_end=521 + _globals['_GETINFERENCERESULTREQUEST']._serialized_start=523 + _globals['_GETINFERENCERESULTREQUEST']._serialized_end=570 + _globals['_INFERENCERESULT']._serialized_start=572 + _globals['_INFERENCERESULT']._serialized_end=664 + _globals['_TENSOR']._serialized_start=666 + _globals['_TENSOR']._serialized_end=725 + _globals['_TENSORLIST']._serialized_start=727 + _globals['_TENSORLIST']._serialized_end=778 + _globals['_INFERENCESTATE']._serialized_start=781 + _globals['_INFERENCESTATE']._serialized_end=1119 + _globals['_INFERENCESTATE_TENSORDATAENTRY']._serialized_start=967 + _globals['_INFERENCESTATE_TENSORDATAENTRY']._serialized_end=1038 + _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._serialized_start=1040 + _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._serialized_end=1119 + _globals['_COLLECTTOPOLOGYREQUEST']._serialized_start=1121 + _globals['_COLLECTTOPOLOGYREQUEST']._serialized_end=1181 + _globals['_TOPOLOGY']._serialized_start=1184 + _globals['_TOPOLOGY']._serialized_end=1454 + _globals['_TOPOLOGY_NODESENTRY']._serialized_start=1305 + _globals['_TOPOLOGY_NODESENTRY']._serialized_end=1383 + _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_start=1385 + _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_end=1454 + _globals['_PEERS']._serialized_start=1456 + _globals['_PEERS']._serialized_end=1481 + _globals['_DEVICEFLOPS']._serialized_start=1483 + _globals['_DEVICEFLOPS']._serialized_end=1538 + _globals['_DEVICECAPABILITIES']._serialized_start=1540 + _globals['_DEVICECAPABILITIES']._serialized_end=1647 + _globals['_SENDRESULTREQUEST']._serialized_start=1650 + _globals['_SENDRESULTREQUEST']._serialized_end=1780 + _globals['_SENDOPAQUESTATUSREQUEST']._serialized_start=1782 + _globals['_SENDOPAQUESTATUSREQUEST']._serialized_end=1843 + _globals['_HEALTHCHECKREQUEST']._serialized_start=1845 + _globals['_HEALTHCHECKREQUEST']._serialized_end=1865 + _globals['_HEALTHCHECKRESPONSE']._serialized_start=1867 + _globals['_HEALTHCHECKRESPONSE']._serialized_end=1908 + _globals['_EMPTY']._serialized_start=1910 + _globals['_EMPTY']._serialized_end=1917 + _globals['_NODESERVICE']._serialized_start=1920 + _globals['_NODESERVICE']._serialized_end=2484 # @@protoc_insertion_point(module_scope) diff --git a/exo/networking/grpc/node_service_pb2_grpc.py b/exo/networking/grpc/node_service_pb2_grpc.py index aa8d8993..ee6ba63b 100644 --- a/exo/networking/grpc/node_service_pb2_grpc.py +++ b/exo/networking/grpc/node_service_pb2_grpc.py @@ -3,7 +3,7 @@ import grpc import warnings -from exo.networking.grpc import node_service_pb2 as exo_dot_networking_dot_grpc_dot_node__service__pb2 +from exo.networking.grpc import node_service_pb2 as node__service__pb2 GRPC_GENERATED_VERSION = '1.64.1' GRPC_VERSION = grpc.__version__ @@ -20,7 +20,7 @@ except ImportError: if _version_not_supported: warnings.warn( f'The grpc package installed is at version {GRPC_VERSION},' - + f' but the generated code in exo/networking/grpc/node_service_pb2_grpc.py depends on' + + f' but the generated code in node_service_pb2_grpc.py depends on' + f' grpcio>={GRPC_GENERATED_VERSION}.' + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' @@ -41,38 +41,38 @@ class NodeServiceStub(object): """ self.SendPrompt = channel.unary_unary( '/node_service.NodeService/SendPrompt', - request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.PromptRequest.SerializeToString, - response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.FromString, + request_serializer=node__service__pb2.PromptRequest.SerializeToString, + response_deserializer=node__service__pb2.Tensor.FromString, _registered_method=True) self.SendTensor = channel.unary_unary( '/node_service.NodeService/SendTensor', - request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.TensorRequest.SerializeToString, - response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.FromString, + request_serializer=node__service__pb2.TensorRequest.SerializeToString, + response_deserializer=node__service__pb2.Tensor.FromString, _registered_method=True) self.GetInferenceResult = channel.unary_unary( '/node_service.NodeService/GetInferenceResult', - request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.GetInferenceResultRequest.SerializeToString, - response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.InferenceResult.FromString, + request_serializer=node__service__pb2.GetInferenceResultRequest.SerializeToString, + response_deserializer=node__service__pb2.InferenceResult.FromString, _registered_method=True) self.CollectTopology = channel.unary_unary( '/node_service.NodeService/CollectTopology', - request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.CollectTopologyRequest.SerializeToString, - response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Topology.FromString, + request_serializer=node__service__pb2.CollectTopologyRequest.SerializeToString, + response_deserializer=node__service__pb2.Topology.FromString, _registered_method=True) self.SendResult = channel.unary_unary( '/node_service.NodeService/SendResult', - request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.SendResultRequest.SerializeToString, - response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.FromString, + request_serializer=node__service__pb2.SendResultRequest.SerializeToString, + response_deserializer=node__service__pb2.Empty.FromString, _registered_method=True) self.SendOpaqueStatus = channel.unary_unary( '/node_service.NodeService/SendOpaqueStatus', - request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.SendOpaqueStatusRequest.SerializeToString, - response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.FromString, + request_serializer=node__service__pb2.SendOpaqueStatusRequest.SerializeToString, + response_deserializer=node__service__pb2.Empty.FromString, _registered_method=True) self.HealthCheck = channel.unary_unary( '/node_service.NodeService/HealthCheck', - request_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckRequest.SerializeToString, - response_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckResponse.FromString, + request_serializer=node__service__pb2.HealthCheckRequest.SerializeToString, + response_deserializer=node__service__pb2.HealthCheckResponse.FromString, _registered_method=True) @@ -126,38 +126,38 @@ def add_NodeServiceServicer_to_server(servicer, server): rpc_method_handlers = { 'SendPrompt': grpc.unary_unary_rpc_method_handler( servicer.SendPrompt, - request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.PromptRequest.FromString, - response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.SerializeToString, + request_deserializer=node__service__pb2.PromptRequest.FromString, + response_serializer=node__service__pb2.Tensor.SerializeToString, ), 'SendTensor': grpc.unary_unary_rpc_method_handler( servicer.SendTensor, - request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.TensorRequest.FromString, - response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.SerializeToString, + request_deserializer=node__service__pb2.TensorRequest.FromString, + response_serializer=node__service__pb2.Tensor.SerializeToString, ), 'GetInferenceResult': grpc.unary_unary_rpc_method_handler( servicer.GetInferenceResult, - request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.GetInferenceResultRequest.FromString, - response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.InferenceResult.SerializeToString, + request_deserializer=node__service__pb2.GetInferenceResultRequest.FromString, + response_serializer=node__service__pb2.InferenceResult.SerializeToString, ), 'CollectTopology': grpc.unary_unary_rpc_method_handler( servicer.CollectTopology, - request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.CollectTopologyRequest.FromString, - response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Topology.SerializeToString, + request_deserializer=node__service__pb2.CollectTopologyRequest.FromString, + response_serializer=node__service__pb2.Topology.SerializeToString, ), 'SendResult': grpc.unary_unary_rpc_method_handler( servicer.SendResult, - request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.SendResultRequest.FromString, - response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.SerializeToString, + request_deserializer=node__service__pb2.SendResultRequest.FromString, + response_serializer=node__service__pb2.Empty.SerializeToString, ), 'SendOpaqueStatus': grpc.unary_unary_rpc_method_handler( servicer.SendOpaqueStatus, - request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.SendOpaqueStatusRequest.FromString, - response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.SerializeToString, + request_deserializer=node__service__pb2.SendOpaqueStatusRequest.FromString, + response_serializer=node__service__pb2.Empty.SerializeToString, ), 'HealthCheck': grpc.unary_unary_rpc_method_handler( servicer.HealthCheck, - request_deserializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckRequest.FromString, - response_serializer=exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckResponse.SerializeToString, + request_deserializer=node__service__pb2.HealthCheckRequest.FromString, + response_serializer=node__service__pb2.HealthCheckResponse.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( @@ -185,8 +185,8 @@ class NodeService(object): request, target, '/node_service.NodeService/SendPrompt', - exo_dot_networking_dot_grpc_dot_node__service__pb2.PromptRequest.SerializeToString, - exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.FromString, + node__service__pb2.PromptRequest.SerializeToString, + node__service__pb2.Tensor.FromString, options, channel_credentials, insecure, @@ -212,8 +212,8 @@ class NodeService(object): request, target, '/node_service.NodeService/SendTensor', - exo_dot_networking_dot_grpc_dot_node__service__pb2.TensorRequest.SerializeToString, - exo_dot_networking_dot_grpc_dot_node__service__pb2.Tensor.FromString, + node__service__pb2.TensorRequest.SerializeToString, + node__service__pb2.Tensor.FromString, options, channel_credentials, insecure, @@ -239,8 +239,8 @@ class NodeService(object): request, target, '/node_service.NodeService/GetInferenceResult', - exo_dot_networking_dot_grpc_dot_node__service__pb2.GetInferenceResultRequest.SerializeToString, - exo_dot_networking_dot_grpc_dot_node__service__pb2.InferenceResult.FromString, + node__service__pb2.GetInferenceResultRequest.SerializeToString, + node__service__pb2.InferenceResult.FromString, options, channel_credentials, insecure, @@ -266,8 +266,8 @@ class NodeService(object): request, target, '/node_service.NodeService/CollectTopology', - exo_dot_networking_dot_grpc_dot_node__service__pb2.CollectTopologyRequest.SerializeToString, - exo_dot_networking_dot_grpc_dot_node__service__pb2.Topology.FromString, + node__service__pb2.CollectTopologyRequest.SerializeToString, + node__service__pb2.Topology.FromString, options, channel_credentials, insecure, @@ -293,8 +293,8 @@ class NodeService(object): request, target, '/node_service.NodeService/SendResult', - exo_dot_networking_dot_grpc_dot_node__service__pb2.SendResultRequest.SerializeToString, - exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.FromString, + node__service__pb2.SendResultRequest.SerializeToString, + node__service__pb2.Empty.FromString, options, channel_credentials, insecure, @@ -320,8 +320,8 @@ class NodeService(object): request, target, '/node_service.NodeService/SendOpaqueStatus', - exo_dot_networking_dot_grpc_dot_node__service__pb2.SendOpaqueStatusRequest.SerializeToString, - exo_dot_networking_dot_grpc_dot_node__service__pb2.Empty.FromString, + node__service__pb2.SendOpaqueStatusRequest.SerializeToString, + node__service__pb2.Empty.FromString, options, channel_credentials, insecure, @@ -347,8 +347,8 @@ class NodeService(object): request, target, '/node_service.NodeService/HealthCheck', - exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckRequest.SerializeToString, - exo_dot_networking_dot_grpc_dot_node__service__pb2.HealthCheckResponse.FromString, + node__service__pb2.HealthCheckRequest.SerializeToString, + node__service__pb2.HealthCheckResponse.FromString, options, channel_credentials, insecure, diff --git a/exo/orchestration/node.py b/exo/orchestration/node.py index 2df59bb5..5fe117e1 100644 --- a/exo/orchestration/node.py +++ b/exo/orchestration/node.py @@ -16,11 +16,11 @@ class Node(ABC): pass @abstractmethod - async def process_prompt(self, shard: Shard, prompt: str, request_id: Optional[str] = None) -> Optional[np.ndarray]: + async def process_prompt(self, shard: Shard, prompt: str, request_id: Optional[str] = None, inference_state: Optional[dict] = None) -> Optional[np.ndarray]: pass @abstractmethod - async def process_tensor(self, shard: Shard, tensor: np.ndarray, request_id: Optional[str] = None) -> Optional[np.ndarray]: + async def process_tensor(self, shard: Shard, tensor: np.ndarray, request_id: Optional[str] = None, inference_state: Optional[dict] = None) -> Optional[np.ndarray]: pass @abstractmethod diff --git a/exo/orchestration/standard_node.py b/exo/orchestration/standard_node.py index 3702522b..9a8ff4d7 100644 --- a/exo/orchestration/standard_node.py +++ b/exo/orchestration/standard_node.py @@ -190,7 +190,7 @@ class StandardNode(Node): if DEBUG >= 2: print(f"[{request_id}] process prompt: {base_shard=} {shard=} {prompt=}") if not shard.is_first_layer(): if DEBUG >= 2: print(f"[{request_id}] forwarding to next shard: {base_shard=} {shard=} {prompt=}") - resp = await self.forward_prompt(shard, prompt, request_id, 0) + resp = await self.forward_prompt(shard, prompt, request_id, 0, inference_state) return None else: result,inference_state = await self.inference_engine.infer_prompt(request_id, shard, prompt, inference_state) @@ -268,6 +268,7 @@ class StandardNode(Node): prompt: str, request_id: str, target_index: int, + inference_state: Optional[dict] = None, ) -> None: if DEBUG >= 1: print(f"target partition index: {target_index}") target_id = self.partitioning_strategy.partition(self.topology)[target_index].node_id @@ -280,7 +281,7 @@ class StandardNode(Node): if not target_peer: raise ValueError(f"Peer for {target_index} not found") if DEBUG >= 1: print(f"Sending prompt to {target_peer.id()}: {prompt}") - await target_peer.send_prompt(next_shard, prompt, request_id=request_id) + await target_peer.send_prompt(next_shard, prompt, request_id=request_id, inference_state=inference_state) async def forward_tensor( self, diff --git a/exo/tinychat/images/8014d04e-b85a-44a2-88a3-29091c42bff5.png b/exo/tinychat/images/8014d04e-b85a-44a2-88a3-29091c42bff5.png deleted file mode 100644 index 8117046d509cdb1cdfd84627422a088a97ae1688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416562 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 w}CV{`MvzxE4! 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

~6p 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

|6(PQfFL&_!^#~XU@ z?%SJ{u9qJ~q-qiNx=C_ap2nujuL0d7MUhy>(qimCm}NL*2i7nU;|-cp8he7#12jGn zgFSpWwFdZZye0>$L(K-2b=)*Dszi8Wk`Ay%L`X^z;SmCaBjBZERZS@aB*cR)H%d8u zl&aG9q9tOIVgCgaH)~_7&&0xv@a~OYC9P{4 zs9hk06Nr0L`RAB0!U1>Rgxmn&5d^Hgk5n@YBZjFUl1R>ZS=P;VHbx$DW?nW|027m| zB}uLIKDx9#yxUmjYF8EpvGq2-Qve894$BC~vv8P?99$mGdIAEQZ7!TJ3=bppCrqra zP;8WR=25Wa?gN(}9wq1D!^6f4Nn6J+^S~Xuc}ZE_+?)nnY`gzyG=~p61Oij3+BCvz zo%*7}f^ah{xvHzF_ui&?r`pXmh-$4;bGrn2q{K*Se(-g1rruem({lO<_ha~kMMoYG zS2@;o!U=SN2!v8!Su|dGC8pO}i6)wE9qpdDja|Yls1+a_rKn7g+(Nn0xohv-%ntj| zId=6|KlVF+`-gt$b1!~g+*3-FrupV$Z+O>NO1-@<>$4yG$b*+ZpV-MwKyQ5HvD5iz ze7m~4F6f`Tm|knJV-Urm(Uc(!N^w|7cs#NYjx>Wh+}qVs=0deVZJQQT+KyvMd9I^f zELsPGM9f{b^h&2%U_K6!QVN8i4)+*2Sao1Hi?pq+oSopXj*S-4_(%f);^DkXECBq_ zxTJuSZpGz+AngEBNf3sI9+p&!sUjfL1V&~;5_ShdYJo>TEIA1XAciW0Qb|xi5>(5a z;Q@73m6RyRyE29KF7uJKRpuSAZS9aGbp@P-kr)6u5D7hs8y+q=Ia==Ro%`-|N{RpY zzxYRg=9hl)hkx!LOHE;i!}%9q`SeHn*L?HQ?I%{}l;^Mfmhb-DXPsqs0ZM(;d0gcSMln-b!~E7`01N*YlnGCp1}w+6L@GnK56^bTI;4$nca~}V&TM~ z@aPs1+KrH~E!l$tx#sas9a^KRPIYR%yPF%0t|T)Zsg+@cn(CygqvUR51-ZA@iD{~p zKqDrVawbCSo!tk=h&Hg$$o4X`wBAPw@30 ztE%}{89!ix9-d_D4Das5M1j%!H5P*I&Ol0uKn&g=uBK@c5evRrmU-HRsaa5f0*M3! z%9Vf!&n2g$e0+A4N^WbLqbKI&{7Th8i4%wtPIta5{Ll~$34lQa(P(A_!Da^-ft0cc z4lDLnBc`JnueSKi-R^5t$|v(uygqfxcTV&Myzs$wS2%@Rt(T5ZJp1v#{(b+|2S4;% z)(_-iN>cLer=EHAjqg&=>%&){|Kx8+Kd7!n^!DkkKlGj7eskr&@fk~ zJcwJ+o~9XzW!O{9K@I|zhTRP7Fzc=5K@}809ZV2`846=rkp#kRxk{W;$|xDV6BtZ# zV~5s-S@&0xm`Z^~v@5DJzz_%6d*cM~K-Noq@nI|OPaRQ4BreQQ{>Cr=njim}pI*__ z`mXNwuRZ_rv!8l8AIptnb=n<2@|EB82k*W5Vn2Ujxmc&;T+SW+&fFPch`06V3WiPB+N=3QkjZEeDwa#pq8TkpD= z4w8)dWNqzrdeAt~Ybk0vs#|NF4$D$X-ta+|RL(Vxoa>}Z<@i+BLcS#Wm6UNs$#FpU!7+=uFw=yGU zL?FmLhEa-{H=xtDyh3;g3o)&08yfX6kd4&ESiOxp3?6hBvyr45nZ~XyhIFB$2zM|9 z<8|Iic#J)mhzuP3$a^uP$RO(bs65 zSg2%#jnz3qw|xi`h~YsNK@KEzBg>$PctU5a3mu{uLjn&vwR`tI^ISZ6boBlw>Kh+P z6SuWfz$kzClb`vI{vZF>-+A`qu+FLgG-Nt?HP?M=5XS4=YXtS=&9A;bv?x4`#Q_e`)+iI<6LGPMN%}28x z7IN@hvF(4!o3ap6cGFOlT#&`r#?4VGkw!Pt02sNXy!{h!RYF8lN)m9mb53xJwL^k- zN7N2{WtD1Ae7IcaT`F1r#Xt7lfA@#~-funk9D=5V`(OP0r$6$cx4iScS#Y)QdyZ$` z`~G_`fBP@~#NP+!c4&#GkAM2Jf9-Gn*KdF3t?zp8+l5Ow9X%B(jYWLclPl`@h6}5muBKn2$L$TX@IKN7}@egkBI5~jhv)#>G zCrm+^nW4+tTU*s4Fzsd!cO4q-NJab5b+VX;Bi3oEt#@ou zFebd-V1dC%mBg8*VfYMycx!DMP8=2yPT*LUC1oLyg=6dY+>$^nGNm+x<&-55EM)5L z-VSY^XJ#6BlGYjvGX_&Eh=`aIv2H3$AKUox<%~W5Fg}fS6DL;RHd^j6$bcd;iou7H zLCgdfV!B2jjr8x2L?jq)BzLc;~j%*>-eYN*ZbE{Xr?NC#p| z)dBEuU^6BSg=#dIt65haY>iEdmuvM*)!{@GqaSIYR76JGk_hLVB9K$gIkny}L=KVh zC2vWw!95gVVN)Bx-BD(;EbCT09Ro$RCpbk93&7l)_LOq2r8iqH z4(p-0hdH`gb9?Nm$4_tF2(?%`_U&;0f;=FMJc8v35g2deps*lGR4XKd6OteajuP0h zOQ;ERMXpeu^E^4}@~{$Z%~5Gu!Jqo<^Z)O^`d5DSgTJvHE_7XmGg!DD-FWJ4kG=Kn z;Lx^z@e9vgUAzWzW}Zv=y7#{8na3X+?ej zXQ@@!hNZy_Ik7M#jlg!Q84*L|h-E=eus~}-Kp5Jwt}q*Sn3O^}M*uQ{PLk#slF*b{ z@>IYnrNJx-NtJU!cYva+?-x$u8bGjQ86|POaVfSM4hvKfj@Dvb0fjrd!h(l*LvT0B zLUZ-e(NYR=MicB4y}01>muc^QFruv5AGvk&kNkl@bTpO3e0gyJvb(Rn@Zj!Cx*UW9 z6uBI~@9VzpP4D?CF4I)!-W_TFt&e`}|M-9ZzdZlKt4{ghg@bS6=y94(1R}~F zs1yV~K10H$=I(3jrIb-uH_~r8 z=iyr&^uU3Q8Z40EvPn6qS#RnQ(>x8=>=3Sd?{aOrYpr$dwU)6+C^<8af8flUNT9v< z!M_+E18jWRoO5q&S(YKO$mab9Ag60@%ev&0de;DI zEzC^BU3FcT?Set%lyc5%ZxOLc;v+bmctCL6ZEz{h-aUbX??mFuz4dzZ@h`sg|NLuz<7a>A1DvY0h!CkW)sve~z3uH^{Y@vg z9}Cxud#^tG(GS~lDH4+DbUu3P({DUII>}S(%$>p0L0+{51I;8qqPw|1qnDo5&)!I3J zku$bVS&9g-APE9`I1F(DL;%~`P&1VbGhG{!Y{@(3zOKl;m4}NUlo;sUR6%15vT#Q@ zL_(G3c@P!7H;gIo~s!D1MxKSV%*?F!UVi@5pZJLO%QA7! zbagl!-+Jon|G@X0-g$cIN=Xg}d$_ls`ITS!-~PM*`yc($pL*?;hcCTwx1aCrs^Rh? z?%!*lc>dncet7xO-&}wG6Y-(@yO-$LZx+6p>uvXHk&z}uAPZ{7T+!59FSU-CTAoCN zT$REFo&8 z6x(GGy)}2wDZ58+I-o{_qfSg?JL1<)T=xj~lv2*6cQxIpP7yJ_iU=RRtn2;n|GS9z<-WCFc!&buF8#TDTL@ zz*B9NOy}~Yz(O3zaAT^@guix14BFf)I;Mk_aToH z)9Bk6U|L|SbTu^}9*nIC134$t@ogOmfHIKpgQW}yC60)r%TqEXWEv_d#~*8y`0J2Ob=_FPu~CK?~k0EsUA=3-Y-A%Fn#v^5ejM< z-XS=`l$fI_<)l|vX_~-dhl81yQn0LPHzOtN4@39Xt9`14m_wCPay5>C5J^ldAL14N7RSXWUc6)6hUSey4IB09}*r(7vh z$TT6sTStV>6C!rnM0hzJfj}knf#Gh>qG_vuh%IaOF{l-pmoSFqe)Z~Lw~LfQL}OhQ zq4VrpXC|q|mPO_Qa9l2206AcoZB3?X>mtncFhc|kJFnsaB5ZD36HzdWR%qFiPPPTi z?b*3p&3rX`37*T^+E;$&tH1EG-}(E${_8Z=dXU@8v!8tbw|{Q=%RYB#7<&Vre&J_+ z@vr|6|J#3bd;auC^Fg+tCi0Je^S}GuKlp=twbo`o` z>nG0+<%DuXouRJ80Esq(lYtdCKuwivy&2vC_GJ$x)A zZe1j{WqbANmD^Y@%i(k&;uyYdTaIFKNCJ?Xy;fto$GWV{dxmCsr1Dt{l?R$v*hCz5}Dft&MWk$6I zFnX6gR9stc3=&NNZic^7X6-oKh6g89iPP@ZS|g{7>Vui@L8`f3NaYKWs+rjsuTfe> zpjDU4A}sl|OD)^F35$COb2DS2qS{&uN1{hm1?guHHnZVfREcP=a5WDDLd<0Nj!wkA%gx)(A*RT)GX-hN`4dUYN}SOt~gOI1}e> zafcftE*ue~4akYH<(CrF|`s9fuY8 z)7hPwAqnakhJo}^#^}3t+sw`T>*gkf;fVwgRRUG5oXL(^l_2CUqi}3nJKsM0$%o@| z%jCU{+ZT2^o*q1Xl&)0`o`#_lIv5mY#DFUZD1w&dn2{MxGe~gTtq-1SSSOm$BjFZQ zV}3O8*WOr9(W3p@ul?%(;s5xz|LBuXUY&14rVqaPowwfq`j3D7lWn~WKEjBZWP-b| zO-5H%-x^PoltOgp%3M~SC$Nmms!JqPI33ul}?D>Hp}T{?&HcV9je z|Bbi&^uPI!|0n;eU-?^ycz8GoqJXZF*&YPa0&;W%OJRk(pD!|3kfZf+JNR73s~&Tx zNNb~BPr+qtt5kXWttW@6JU_2R!$-TldDVM6T%VXZ0ggEo8ok$P&u_MHjXe&B7|I$B z>zP*v6&=HDbP>@~QoWk++Smbr5N2@f7fI||)x&X43tK87!-ILR^s`P+>1$TBHb%gE z_sml5y+?$KvWnj&CYbH^Y~D*&5f&rMfjN<6)jRr5JJqs(q_cC{3(#7uTbk1RE(z++ z&%nKR70IF)2=|~n$Q2P!)6{yWbgB<4cf-Bcb#u=2+|0%>BNb6qqdoFxM@TW1qHg=E z_tRY%V;JxJ!XDscOqv@kb-oG&VPEegv13`6{aCzXm3SL&R!VWV05Q-+`Z1zp0-4^ZQDFeAR4_VIK+l$>bjeQA*61W+;L_mgoh{G zDZ3eB36Bhm&*9y+Zdw$`{!xK!jXf9jatAK~(h`~S-^|zJ1TW_kcMBml_aMykv~GDN^+&p-d<$3H0C0)1Pz2YUZ2?|((*(9B4b2g(|FwxKZ~IhLbI0g9~! zLFS5S!e!<3xFtv>096K$Wz)k!YXLK)qBl8Au{A0MEPJONj&-A2V|YrKKm-e@KpD-5 zvcd9lIv_w5V=_bqtZW@H%IS%nx@xxOr7dJ za7)Xc$R04k07337->QCa$(y&_0N;)9B74K*>9i~t2D4CPoN{3s zmV)Ihz|#vO%wt$YXwpoHY>X@=D4<2dERC0`P0qv%OXaTT&NQ?CI7P9M63Kjr0R)jS zMGQ-m&K{(-yTQjOrHF6>NZh@TQESbVu6z;igjkVVFD8ayjGj(CI9RzB7S(lKDF9(c z%DV6TI2IB$C^kp;p?!Mu0X-@$w&uZA5a!JxjL^-*=j&;HGCdqqnIa?x zU!NxN@$%VcKl$Mw`dA4*X?f?3C%^nxfAQht2dxbyX2tmUcKp#N^DV$>R&eh*I!Hkg z&^8dt^nHy5_O$SD+9?(G5&tLyrfv9&ix=0TNZ;N$K2H@^85U(UE`zywkPg9Tg1Hmo(74@88vKqm}BZ+&cN zQE(t4oixm>4FKm?H*!=Ke&gxmuYBo)Kl<@UBl=WmIiGu5N86^VZcc&eF!kQeMv9v9 zodVPGcr>%NyO)cbrM0crDx$4zMFd3K zwxu_v);djdgj*jTk-4Hj<%J;v3-_p{w9#_N6YgnoGj-Rq*OzQX!KD_3HNfRTPURj z?^#;JR7=fE9)VJ-xut9m6j@3ziARj#B86ElmvgC7WE%ba?30gPKKt0M6;LI8=gl|X zdiyDnhdBtKpaRSjHUqOv^H>*kg0dW@y;L8-w)TE0_wK14;w7c54$esVEVID=I15 z+C(G~lVI{bSOx4*MQhNaO!?Y+>(pGP2`ugAHoYS~r7wpgS}Ugm5IRj^24VoVHJJ(` zgt)zYS!bE*n(x|La$*t*@O+p;G5DbXN<0_rX@_gA&C|4PjhKpR8(mzq z=&sI6;2ukaZ(A$nF4*->gPYZ`K&E*fy}Nk;A`DQ(p23%!XJO9rGdP~{M@ZrPL)Q~%z)VaE+1|TwiLPXqrnkE2Ael<5?KFkL*Tb3mWi*cu* zP2YS96KGGw1tlvmfQU3A5>YMH_jIjY&9H6F-2zTT%W^5DmQs7`WAt2_5s`=@dFJ8s zd?4m++qQKRQGm=mHQ9+Yk3jF;5o3((Qf;TwcNPjt9#{>108$Re)M*fD-ZXH-TyRh*ZRA4+D6|wQwVsYr%jUhzl@Zu(XXb+z2{7W` z{Ylx@^UZd-{p80#xIBAKh zSPP3{*^o5?!CNQh>2yL+S^{Gj6+x*Yic%nw-tus_*25jW>){9?%(I)roNJ+?-a2}# z^9)g_h$^Yt1G_1V~cN>VcyIJA~;;5PSfe}8O5FMJ74`1%*$ zr+1G_zlnrv5o7BRMg+FiE|+M7G(%7rpmEzK6qd?C07mQXRwfZ9L`+k8_uaP+$C?@g z4u^x8-{n|QugB>*TxwfO1YfN+z2Cj%!iGxGF-EFOS+XXl)_NqRZx4Nv*TAdf^>K1D0acYm zC619zirGl#V|rO~tQUBl%fM+c$e4|+@`>5uSH~lO*Ifbq*(#|&^TNo-I#08iMbH>y zS(mCcD18r{MrcHuV)E~%+~B{ypmHO$cXsj`^Gm$@Zt;4^lS$q=<4Z7^yYp@W-_hv1 z{wpy6$xe^R>Z8^)VQOow^-V-nikoGglDlP#vkSC$w26dytwn@)a>+hV+?95v*8Cil zQtmcc(tA%`od}mwe7F7!04B*Szx1)Ynde@mjet9xgiNsX{wII@C+3|BbHVX2zy0JX z0SIFNM0~I6oA-MSXg~`@_ta9#nE_&30ql0-%L*T;!p8{`;D7`Qa8Itj`G&l6g(^VI z$J3+7k41@zVN^({_w~gKB|ce2q1 z5K#MUz5K~@+%^!SRu%<9=K})hJ(@v;RY5$K#m*O)5yS&>m{|(UUzg0J9Bx$E86yn6 z#W2hhPZJ{02i)ePy|KyQe{}AS;zN1<92&SfNOzjCRiZd`64j4+cT8YMTl_Q zx`?n4m9lLc+@kfkEIgGx*}?`hL&R*PsgPB|OzI@Uu{Dg2lu5Xga=80t0b?xd7?$@} zl0}FdK72IzV0M~{nU@FGy&E>?c?LU(q3NEfa6kpQ-XyYRBTgt*$W*upx<@mtqu;jv z`GS{Qf%s}#<}ZKkn_qbIJ%6>xI&kSXpFF#H@fi!vhsoWw@O+p?TdlRWS~KUuto-U` z{rHpT&Qwk_iU!A?d_SEzWk*Rm^LL_oCh{i`_9s(Za%_nkRnxt^*im z1X3+=S1#kuLU4D&5HT&wnkl9E9P^$?2tv+90vN-9=wry;uTsR_BPnL9DhKNK^+=bHulv;)SYuwV8XaVf5i{5t+ixigRwmK87>zcNHW)YS? zx~c+{i9`8jo7wIZiO5k>UL?ev8tmL|AvquE)TKR;W9Nbq)v2mV?$TKph_v11@M`CQ z5=BI7EoEbQ`L)(PJR)A#H4y=#EG^7E3ByH8-ivu}rP?q5UnxpNeY7lCL}Y7gYKReD zHKBQ%xub}|o`3!ckxS9h$6If_@ttpdqm<2p=~3=pBeNfjv5~Tl5|Xm`681 zFU#$%Oo|A?qhhCens?aKl7Et^}NxxmDRscd(qsGF@XBF%u}mR`(4q@=WtQ=<_;BU9Z__y=9bK9(2r{9+6sWYt6>6ZV}iG zYH2TzcwLfaAZ6NL6bo9=5Mt1I&~bX#z?udA0D46_4cWroSysW1|l< zSJ8i;kyLu?BD~f@!UTx!%HKpklCZF3>jQ$QxTUpq4@BC7G4ilh8Dq4z<*1JCGBb8r zb6yX`X5L39fOq=*$m=S9o2n3#inv>9rSjA_8`-|~F<3ZhDw*V(i}#dui6~xEB}DUc zoG`NN`#3$ld0#ST-iE5!7)d|Qwhjp2gHZOSr?o!DD76a9`ErQ}7G~ujhzJuYOA$#@ z>+S9Bi%&m}b+xrgEx+&=|NOVV{q)SdPbXm;fB^ z-D|hE2xrykrpLqf>Nd>F^%Wd-o@uV7PRtTZgHt&itQmx%sTyLQ=gdv=bU_0ch9n;l zLxqHW_tU8Uap8KHVZlr?Rk*_fW<0A8g98NA+@%}L0Tz`qPZ$m- zh+u264gyosN8EXu4#z8yV47Lf++u6q8dRYL5amgtpn04d$I$2;_O-8kF?`rCt%B(5 z`Bhuj@DSxX6)7AM3|FSZVP0>S?YwTc=k<1V3nmQ<0l)vw+d8pPU;MHix_#x~Uq6~& z2z{&z&|w|Rf^|ddxVgXs7D7Z*p?g=Dii-de!PeY2^N3PP^l|@qn(K7AS+;c}#H;7e zm-A(sD-(qyhXFhOCy=2Dxg{Q>?^a*UE+LTPn&dl}l~RddX1TyCHLcp_?nFEvrgdGj z*k?&IGjai$YX)Wx_heh-iL@&!nQYwYkwiqewU#So5D7C0jXQ8zUS>&!NN&eYt3?WD zDI%t6YFkUjZIY0};cls*EwuzZ{cU-K?!g`r1WEy_h^*V@ZaI(2i>GaEzrYgw%F@Sh z4-Ze4)ZMwBfzzCxK~c$}OD&~LB}K`-^|TWFlov*dT!D4n!adbsxuUTw6m>$CHC zxj`ya%pAi+ONQ@eTpb+Pny@4ngqUqvr_<4MZX*Pyv8*5uayP>;Ul&mYGipH+0mg`K z5SAif8VT)im${;raeIm0ITNrE)(y=2hglVS&^ml=?R-fOloW+KZ2ufeWgi1J0Hz>0 z94@bJ5J6SYN5Tv0@z5_@KQDn`DXG>&0Bz(@b1W+&M%xgP#vQkTX3>mt)8EDpG-F2Z z=*GGA5rU|#8~SL=d9)4lM052q&<2K!DpaEzn&G^FLg%^l2KI=}yrUHBqu(rXbD^NN zc2$`V^$YL6cRWnQ5{B5emmfcS{@DvHQfdXlV4JOLTei{7y(ky>a`Ph4StNpl^}V;B zK6&t9DyjmafY>;?Kb^)zy#c8#jn=lFI@**!sS0IQOK<{qA;5V;F78hhdE5r|Ba%VH6`&qESk*IUa1 z(mjYNr)N10%Y{MOI9h8-$;*OPI3ryLGilL0Y7pUWN#k;}9OGwoO@!DzYLt<5JCmuD zK&;D}>t4I6QLmp3jAt!Xsk8YF>Gkjq9tFZ+$?2Li3no! zK8B5C(EC0MD!wNdhDVfI0HUCxC0{sIF~5sTyt9WE6%XGLQcRwvn?2Gs_9?mh&H^Lu zt(%QfO4<*TJR_l~X;7H=KL!{XzNa5z8|W@sJD1#Xxo5Mi!#m@&_CI>L-6!V&Ulnm@RY z1Nlf6J=thzrUVuziEUZXy9TxM^8C~1hr=u^%d#%Z<;9E7+q!nM=6<}s`uf+u`h_pP z$ArUFY;|8<9DQ3c3`{atfVcC)DrK6nb!^?+hPg_e5P_`$ATahcLj{Yqu3905SY;}K zU@bt5WsS=MfgTSaCKU*y)-coKjH(8Mb&Me*Bn&um=R8d@22z0vjCI2p5N6eSbpms^ zL!@mD%&_n=kXmbZYYhO*j@S3V(#{)*xK^%HzpUjjmw9H<(Yh@ggh?wzSQxdi6c}`x zdK+O*Rk&zU128ESJ;^Q9`4r1alTi}VGxH%UwgZptzE)<+t#gbK~(D@NJVQ5 zo0KQe^B;c{y-jloM?1F<-hAUr@4nTxOJCP2p*EziW}OdGP7EcaZbu6aGir4QhM^Rm z%i*mnJSl^k^+x950pW6}^>py??R;BQPlsceJH}|+7;D1f_F)e}RhD(FCAX4$zD~}H z6V}kSmO%TUeR)ekQ=NtlVv;2MFpbd@Ihr98qYq(X0N+3$zvkRLyYFzSbWRW`Wvpo^ z)>0Dt!JLj@R@q(LW_u!B_9(-~wr#38k6^#kvl1xbACmlRfSUJb=`2faU`ksxEA8`>@5p%bZ+`QdHl3wTDnzPVRvGGUiLcZk~oi zOFck(rzz7ALRgr@&4gJ*^RKX!jsUOs8UWmbnS^sn7^ReKJyc}dHs+nEMU=EMOI~sK ze#fS3FER8;y9TqW3MVN9%xvySOHIBliFF75Csc?p+qV;PLrsJs0fM5Z~gy%?~_kofM~Sg!?V*O7}sIKLa8?X2jn_w^FJJ$iia$&&|tYs7f?@c!l1`SXuH z^I_9ekMn^=9sct9XScVXX$|7Y#nq#S_ou75_c6`&csP0l7d||F09d%e0}<2dfFgiH z1bmkXY#lzl_ZWlcx)Ty9Y+I$sww)19r67Wo+qQWOVJ1~L&>dC5gyFt!AdX?)hlm2~ z{q?LH&`QjpAQ5D?!uhPVu(sKX1ei5L8(S2i!qC~=%h{<{vA~N^UmFfC)eDe6A3WHn=oo{Y$U!HTU zU#FV62}N|zj=jeyIZT-#<5F*0FIiYg*L?8B% zGjq-)a-Zmndra2j0@Mx`3 zKB^s?gmqnWORuWAR>>o4XAZjetr71i*q{2sXnmwz-rb9qT>WR-T_4?s5y&HmX`bia zM>?N#YDg@ioJa7muE|s&-04=sJ^C1V6`76Jd)`h&WNtN6N-{%RDEpOMXeYjqS=MDq zy!*Co^E~Hc9^F#xl$yDGrA37(tv8$ImYnsSFXvJ?>~6dhJ(oZ`rrJ2|H*It zn?DFnGVai-WmdQDz0n-%qPDcn4(dlqJzq)zx(Z|tRxQEe$)BPt; z9^WpjN%YYOeXcBrg1MklI{9sMgn`AjG0qFL=rnK7UjYCsm+He~Z5SSXxP_Dor|EDV z&ByH}x{dQzk0&Nga(fI|&fFXb20+XRVp1OlBCaY^#pw_ZY%8jG1}6|eTn+~)6AM!3 zKea zGc-pt3Jwp?IDtTH&D|3SDk5mTo=(U-SEg82UpEXus?-XWQtMbdnv-a`x=w^`jG@yM z1JiVc%ZM#t3@rdd2}ednxC!}GNOsjXNG4n;I7( zRUh8go)LEfD3O$UJj{@%LMwR6CgJCag#n&vFcr)kQue_Ed74qTYiIRJT9YtdTk7&iJ) zQ7xM4)$rKXZBO9-sV( z8N;^x3K5cyk{7@{&sl}^(E*ry5<6%G)kOSwZf?E*Vh9e1%-$qS3v_f8-b z)jmdRTULvC3DsJN2@!{RV&<}QU2>J(BmDaMIs)6e(%oq_YzR|QAu~p)l(Mz$bh>i$ z)|;^C9{fkg)4|+SByaWzuJhD=3>((_qsLFb_|ha(`tJ5X^7gkNeVN)xu;}0G0q*AHHrQ z94aN4wd(c#lTNZM%gg7lF1P1G{NOZGYwSK(EuwF}@$|hfesH{hRi=YA>n|^{Y(Bzg(Ne9pryUIMIYY#wwxgpIj#wS$hrYwEyPOG zjNotvGl+d1i5+ECFfuz9YeT{Th#?hYU;xcX6_XMiy}=@N%uq&w7sC`F3-1)p#g;kP>nWhHEYAR z*0<)ZabCj_*m@%6;ej#GIt2C2`*`ETHF|44^64>=0JPj*dhhA58Jn@td_4oO-b>L^ zH8DrYkMJ-CA+T+2uf`&nIa`+G&-wYT4;L%wu#j0~`bvUX~@x&D_Y+9U+RD z=V|V}UzSU*Pa-^l$5K3KdEzJ3`BC+qO~) z3-#V(fBAONZLV1EK6bus&3t!a=O-`6i@QS`=)Jc@X%e|d-qqRj?pv-D`9;d8B!yC~ zw_KS_by}9i-G#+$Y^|l*I^QmH&)Ubv$jIC>*8mfjFMjQ3j}PB0rIw;2;vfIF|LkA? z{vVnLnESBN4dGf@5JqD>F7oxK;}{qlA|Mq#cC|hjrE;CpSE-XiVsM|{ItKTtY5}2- zeqM(;YOSa1h{=bv*4FLv{Q2jHtLfq6`}6U*uI=XK^G`qeaJhNjN9$oU@x6Ojm6Za8 zNdvSwwXo5nkcV?_J4GYW>xpmcNtsm;$J%JBq>5k)2E(_GwP*f~O!Mfj$19m;_7FmQ z`2uiK?X5X^IUPx-2*lDrtjC!|{IdA6;5EcwwOk#cI@TU*W0kROyZose%zFCls%oj> zmY)ti9sr8gc^1B#hQYq#R}dBn%*Wx7JAs*zk7uV09p6tyg=&H55A!D+`27oTifOK_T{UW&qr^WyC6j&T6j7UfB!2x*z-!@9Pu^$56yiWHV{Ua9x!!`jGQsj5uVG{#8ewieBbyZ26n+%&k^ z>+qY=yN7F$R0L^BFBC6v$}RL5!_9NIaX0>QRTa(IIqQzbinM=e z(P3lT)|__@8_b-h=2BFIbCfd1NQ+nw$8!16dl%7MZ{!RLK;~h@ojW8gkfRSKuCjXO+u8|iW=>(|gkk;MtB<#i_|i4*56lDG84<97%Zgzb zmX2sN!@7ZNlwsOg17;L9*3DX{h!@YEfA-Pm;mo4*VJ0H)e)H;f*;*g=;L-hB>vq0X zwyKQq=>5Uzcy*|wEz9jK$m>C)czJx7-?_(Ei~}K$G1~$iw)TDt>X^m7V{}pm2V%6_ zo3I99W*WUoVE_o%s(|^rx%HrsB4N>&R_eqg5E{LCn1>;(U$zM6bcO>ELJ@BbeV}y; zggdn8JOMyY$Rm|ni3M$h51MBx6+sB}t?k;3^!b~Qt#K(*3M@e6+tyy)jNZZQt);y= zj-no=ef`P=)FG>h$=HH+moEn{(T?`A}JygjE&p^)RC<+Sn&irRvoY!4T9Z zCwcS!AhXd*Eg1nra0+-Is$w=uEr-+Lcy%a6FE>jctxhEziI+`+XHVxHB8&axcu#XB zqSwg+NtWKfZy*8^jFFAP-LxN>1fFL!_R^BZ7zBvuURJyF-4VaHEJV3V3A3!V_Y(rN zTL{w4AbiKK%fOw?(O}Emj#>}LgAMC3-?foQbv6ZFEN@-4*cDX+9kf zm*wVi^RkG*;!vlz9zT6}|G_j*X~b!{GHIbyi?SU31UcP3>%5LKxMf)#_C3R+`z4zs)xz0=;|dFo%1YW@g3+BIHn>MGy`mZ^nhWlrl{^&&Z=@ zm~EYz1CXh@1y$v#_Vb0{d4Ac3#)p6$~zQJFn49S;(A;1F&#Xk}4iC93x1p*11^LaSk7mnApQS zTdG+DOdRlR1*WNH4L46yqW!X_E?N-bw)4h&?+9ousdwT%ES16o5u#F5-MqK%?y7}_ zd+)I~gC42Hch5s6cgs2d=)GsX*m_TLUuLQ0aC;wM5biu%VP=U(3`7bnbB&sb7b0wK zW+U+#VX@oSa}!2Lc~Sb5&3*K~H(2hwGT1|l<{6tH?Hr1TO1A-`2p_{DJYNpXtS3xn?pXCf5U9AEmLO9543;xWwKMU{oaLRHdKnO#DpOI$enBO=mL z0CG1_uu9(f`GnKwiHH;nN5pQ|47ho>QB;wzQ6Ft{`zWMZY@2d4NAEqoIn7Q>P*K>X2+SCypmlc#$` zR$$>ECm~evvC%B7MB-2f89X2rEf55X7!7R*v#5H;Fc=_(Yi(;saK7x}?(0SbOcM+! z6;ri!8@)&C%q-Icvv6kaF!v&5+t%J&#tEgzJB?O(!t6sHcVTfimUPMz3#)4H4S_lHRxRfxyRjJo zbFa0gHE(2^g=9UP%t6S$!w54IW=?~*88i3R>r_S9&647WJ??^-c#P4uEi;47MrLK- z$-Owwtn7Ju-^?tN1aq^pD`08At48k$xJwmQp2&&A$lrr}bJJbH`NYM{)5>?3y_)dz z{bER2T7I8LPb`YmTCj)9^xcmBQ(YJ~+&p%S#~5k340mA}edI6)0gqi1GHjTIWlMO|;#t@7W15an1yoS+(prON5+f*|0H&h-OuujNfJ5%q{Q#y_Ip#kIuF=Gb4tG zjxoA*0J_`v6P3)oPxrFn=$7JO)%=|S_2iqmY3-TmMv3 zLrr_wE1QR^h$s-lMr&JyrB#N7NN7GBfBu(#<@n%@Z5iZn*8lRK|I1(fum3;9Dy6u` zXahmbdbc&uhq^sF$=eT%H^_hlm@oovs6xtM!bJDqe}uSN`syO~Z!4Op8p1L$}_>cKzt2hmr$;7=C_nd-M5=u?_Qpu+|b;1A(7^^2w`b zpNzf$-nR|b-hcb)JSn-^vW7W}IC_X3_wKmbbte`brJT6QtG;_J47x#urIfnIS)tQsi`>^frw6#WvbC~3=Tr{iUeTzV;<_$9&!|ueQo_A8t`CIP@uyWseR;$^x<}y67 zc+9LK$-mlXa)Cf_@<<}u)-}f-;ljfEr9$~vXVzX0W5%!)3VB4!Xj_$teUbiW-3x!F zS$-T9lp{W*g%W0`FGw-3qd)GpF@+4$tunGkclv$Q#DXK&i z9^2C2dHaK3{L8=cPk;SW8kg4lvzyD`{=0wYul?fBz5VchAyE|@9k4xSjhj3<;)@UM z^H=iHaaqBPpt}!Ez($v?oQ|d*1XY=jbI$IfwW7y2-g@-t(Zlw=pU5opRJL`w+?<#5 za_`>#b?Z{*Zt?L?KJL903HP{vIzD}LzjAQIc3EXun2+} z+o~!k3^Tw9+{X~I2nds{D>1Yx+yS+*iKYU=PrNp;*^* ztzz&pDWafvus{OEd_CKNTdl{Z_l)WWJ3YCo7PwhK1uxEH0mhJGbag<9b?fr@P~Luk zCzIbdcq0G|nG^^ig5Y$lMa0dAyGyT=F3Z+!l*7TSPgA{Y=DpX$MA*n0Cp2%gdxhS6 z@&vs*xe%{g7cK7Lo71zk2Gjj(n8F=BAV3KMc_I1WF&=2pLJl9>@#k=6csI_4-eli+v#*79@#ErrZUXkO+0pUnJPEAG`laRPa;(;^cInRf*uw{lD-AxRb*eOymmAcp*KA1(RWtwLjY# zCBp8Ja<{yZv`BW9>0`*HdTU#)Q$)1ZQiD83CvYZb^}EPi>}?DpqLxZTtu-Jr+z~`= zYqge$XsrVwq9W=R!?&C*+HjE1(`4qudMRq=chV?g=5UN*!$v6@mTe8CtzU@y=&A*G zG4Y~e!_0#TOTWz1Vb~aBOtt1druTk09L&bB$Q&^#<>!9kul>$%|MSm3{QY^7KDK}M zTfg;p{)=Dx-~KQD7Aq5Qd)cNs6GA5OK}H)tnd-ORjeq?qQNil)z(ElN2*|BOxnk&G zcTf;AkR!M%PqkDP;_KsK9ZTN~SIXBD4t2GD^Wx?8@c}d38h~tkuaBpP*Y|`OPQ!wj zwMqos(ask+O#ZOO<7<>+1Beb{(gJJlt};OxTNjeUAXwns%DLmk>d(*i?3I7oOFv); zlYme{NDCqWA%(M}7)^)m)92H1uG0)7xIzfqhVa4+DKLcRwV^p*@~sg#%qc_u9O*NK zh+h^U4yOZ{#=7e1fURRdO5IoAmz9KU7!k9`cDqc+8N}_p>QvZ6M6ES9E5{>-$7o@# z98Z8V1RnG8gpn(BGJ#YDEXUTYmEFgBQDziJS^P-Lf$Jawh6fz$0BvzTElQlJCQX`7y-J4z=Md-oxX|4tCItyxPF}x5@ zNjIM$U=%>D%dmWoH(NSC!aij_W3I*Wj>zPQ4ja->ol>lFdJx$ z&H-ZWy=#?uKJ>nM>$$6+=lOg-r&g189l4uZL@0qsh9wtHNvXG9ingt#3_)14T}XIs zUPZ*5A{tfnHqs|JP19vrlvOq9Po77rN6howM_-mTb)lt}by@qKycv7gK`CbDt&>pE za=9$iRGDd5Zrpg7)mle3qpEpnwVqnx*slcMM^djrt66Xp(HItE2uo|t-D@oYtm}3< z9{U(MCOKW5wyl+-hvT7bosH5CAmrxZb!jbH(Qp&b&Ak6d3GFgr{e%cEo%cz_K z64N{#wzlSME6?s)OUk*-@9gps`PSw(!o!((m>)_3qO~6GB&@qB*LrJdq)fbc1{T)3 ze;_jdE@_m37{jJ{s<}MhohjsQ!gAMXX7cUGAz`V7nB6SdDhdBc!EPy~x1B7ztm{5o zvprciD-<(N1(&M2$FN?x0ufGkV!M2J1E8!3KoH`9PtzA(LQfA>#XzeUi^(*N^+@DKl^U-|3b_~5B8=jm`LvwG`E_JvYh5xsfn zS0pcQBo07L$1e;PHqDCr)n$k|B6a`yj*)F`p627}0GKLwi_x~CbUMvZ*cwP_ zo>WWp;XPymYe6{Recj4j5<>)KgfoEY064}_QC~M^b_?=BRpCKe5kc4^(x&4POfaNI zer!#cg@jYh%)DnYl>!g44t9(lP9%`2Ivf;mC5tlESQe^Gb-j(tcp%fe5AoicbZ-(V zeja-M%zpTjSgbl-UcPd2p6}1I(p&fI{kavtaBv}GgYg(cIM|HcY{Y1TSLml-hDBw(c=l;qmIJI5wPiil(}VkuO06+^boapM#$4DX z&dry>D2R>$gy49@_R=RmeEAU`aG(c<7Vei0cZ1QubYg?|wav#_xHxcoKHr`%qkDL$ z)_S-HtsX(<4xi>aw%$gsQ#CgaPl0|4Vcfme$|8lZty`*8rz|deLqLm;Ts;z(s&OX| zbq{7wCTZMZOtaR^nSoHYI%LDP=CxFFbH^T{hfpmZHq3;@Ef8p}Wd`b9qY`=02O{Sp zHjEU9;~@#EwbX!bt*J=wotX*yKsyr~aw$9d7{h>(D+(U0hQj&F;WY#fgKk=-TlGv4Lo&ay#pNR(fGcOFS#rsGU z20;55hfGR zKI|_)kr%!nqYM-kw{v@O)N34MV8k-Ga5>J*WY$D^I+S}4uHAgwHa$*$8?&*&qDm(dv8B_{0L0$p#VFL&14n|H|yREFscPWnW`?#LtqN3AcEhe z3>Ah%($}3W)HZ2xPy9)ZZ@xLNPxXc22hT6R`{VNYtI~zy3SH2gw8k(TbWpH2hbe^{ z_z>^`2viY33^0+psKNt2zyanmPY_D52fJ~tn5!*|)Pkzfji6AWF{rS$A+^G7w4sL@ z!-yD4zU~+Xa@OOFAoS6DQv^#TrqPX?1A!{xjOY#$0Y(Tb%zW+41FUovx8ph9ujMOW zmA6iO?=S*~&H2M~|D7MV&ps;_OW^S3C-uE2_1!l%DL9rE5q+7dhzlBlB8o(Wx2^=Y zfCZ7rRHq_ZdFyU4@2WfrF_VvOww%>Q1(j)vfxZqsRC2q#Jm22DTGv&jbJb~@zVziU zJ$>uxx^A#gW*;U}M7ce?wNIbd)=(yZU;$>_Uc8KT!tt$pcu;IxIULPPnVq8)Uf0XE zbt1Nit#x9q$J6E(9KzhrO%AxezIQmy>)L85Dl)pIiz3yP>$<9>Aa#$t%q1`g(>(bu zMrbUFF(NZBwTxj2j>BE@LOS|V4m9?2CUa7E6|9?On8I!d2p5qE?_+R=hr{mvjVF;J z*-41Vyf_y26d*aLnT(v=gE=GW-C&dnI$2D+C)p_r-<(bPT~rSu#u#Y^%wR7n0MiCDP`N*o#`+4-UxRsW&d~+G4o|zifG$5kEql1Q(qV< zOpd$hUM@`LX}(;RX_|6eZ^I%$3=t+LH+K(Wq$cWh)OPEQVpl9@nQwP%pE0Zy&3YVx zw8OYN1rU+AkvdJXhZhD5XGldp$=#F~4w5v-$z6JDZlM!j=;4#pK)8X3hFKxX)ii+A z4d-Oc-IXI>!89ay-@w& zs=gff-5bP!D*6Z~Dsp=3p`WTn*8({dB69BzB?8C*pGt)r3rV3qwogC$_~Q>h{@}^u z-a}aW*p~BcSSO8I_3@)er>heo=0h1TZleWvbN2v=iW_)DA0|`f7kzwm(|+)bUiH|9 zhTF1Er$bvoMfs>a&vJdmPpC>Oq}V&>caj3Q=4ZTzYUAxw6AC+;lns1PNa|!ATGi@Blh-zziy+f^M;G zG}V;e+q#Jg0U#j?cjG~Q+q4uCrYhF9opf|4WB~z)N+FCj90YL~$P5uKsuLXW&c$5T zGurXJ2d59dFy6iA_k?(;x9R1w{hJ@-qw}<&i_lvSk5ArcZ=B*@@#{j(61A0P!T4ghY#;Rd~omkKX8Wy4Il01<*V(omcx~(cBV00 z$ZyWK%XZG>ABs2~ruW}@dYDxrR0j71`BU!=o_S;htJXIesh6UT}D*|gS*mgC`&+2Hzm z=KoV&7^7RN@c^hMpDWB=i*9X8JXYTAK&?(;n7 zaLLSkWD-vh(R*M1&ih~g^S}2me!chMTm0a|kNzM3@E`uQU;YoCJg9zox!$a`)~dpV zgMIYP?oW7g#t)v$W*7ukg7jF+)e%Q!=}LqMbC_GH)dIupc<=c2Z+`vw>;HJ%jy`&? z>NF15b1*H-VvTL927eYj!~50C{hLmX5tmvx?tNGS|va3`!Ip52_k`=kE- z&-6TE^R|t#c0V3QcYukVgt@3O2HDkY)7$``&WFTj8J z?DBgb;wR5f{Q#OLVxYhTs$h0(5g|VI?UyhO*Qo*mCRKtd;A1`OVL~5LG9Z@SI!_aN zU>ztFW;R^QuI$K0Uqs@v5ffL1`E>u<*TGYP8Ce#LLR!;40uNNl$ZiaisoLnZR_`5s zag3;=T?f5;xcCtC?dKN(A{B0Jm2cJzX)=EOnw12CD3!U^;KjIW_UF zWipU${l({>y?pjrWwo|?jN|q7SKj|XSj>933piL2f#LCL^V=q*373Q_Zr7-R2bI6{ zAg&Pz5$S7Zk_g(CCCKL@b*`|1K|nCc81~8M&tIM|Qi|$iT&_>|$f+KSZOsGe#2})n z)MZ_YmIU^ID3J{Sv}oI!)S8NvZQG`4;*i$cRBP`&Q!kmz?xPM@k#2heT^g}d|^#*?@MnY1=In21CfL1yOOODQ>= z*HR*UKFqE4(Z>$J9+tU~T8c2Q+qN^c+~J``QylCO30(z{MD%st^3XFIX_X&++!dy- zC6he53WrDck#ijocKwy_c^fJ1`S-an68-_-wPm?#?yZT)G}U$4Qh~6OhtpM1cqrAyg)y*Bwv|pzwLI`)W9+?X}{LVH= z8FwKhqxVuPB7()kJc91%Ho0IYhNxyBM?_5X)O!!2KeZDR_C6_gXJ+iM%#oLwzn0zt zuXkVBb$U1`u|G&?io3b${slmkNdpAyy$|QpFZ|X2!KXj`{Z}9V(c$W7>-Ova~H?n(i^er>1bPP-Aj!kGTi0KLEpb0{UxmfgWS5_FE}2-%wU+O1gut#h;?hz zq0IC2r7wQr`f5I3ZY{#Mt-X3N5yHGq^Lbrge*QuUq8yGxncjTkO=h(*+U;^RRVdjO zqRs+~%{Eg;-*`G+(cyG>^G)uRZkunz)=d^OM1QrYlWjwr`?(`95yi7ltCZ!k;lX!X zQF`NAzxwv^8}H)D-0o3-On!WH{F%r8gU|iD&$l1EI*fugKocBT8_yarkonemp5SnE z4n+?rg&Fk@=3Es*8KPrbCExe0h3RY$9QQo`075t`}XPS6MA$_Fz1!f z`f{t5#H!Z2_15b&vCasu$74NA4mS`$%k5b>(-zqv=bQ6yD+*apVY39yNpWMTJ4sPCu)*|e3su%$;{oG<~xWS?D?ebiRg*K zOWj0xn0an8a%`@pgn4gWiq6y2ZPyuP^o51pJs28hiN8xzHvt(6mz$xjH3Fi8nL*UH z{%6|u{v8*FyAxQH^Z1i=rZ|WgfuxSKt>wC#_bw)gkSQpll5YuthIN*T#PxcxFoXXz zo`}T9ojF`&TUWXZ;7gYXF8C~2Vz~8Bqy4O2=&$gXxa0?3AilFRBHm|8BmeT-AEEW-zl{S zaPrJW2Vlea&N|M@lkj%7cfauUZ~gpV`lrA4g9sxjFE8!?^tb=>Z-4Rapa0sI5pK%{ zl>(qOu&_+}V8WN~ZO>lLt3fI=Ham+Ea7Ca9B4uIjeI?>rYY@!Zqx%nL74tPz!|D0Q zKl!8I{+(|=eOHgyB0&h;v917c8R&>tH`K=V`OUap;??c>lV`H5B8JOlQr#|>+duj2Fqb}ed~kz!9%=%y&m1Z^Je+kx9!Kb>yKaZzxj!Lwn#gG6&+-RT1bYs&MJJr_E(FN z5DAfCQuIzmV4L|6o^?8)4RF}D>G8m9R3@?kis^KM2f#>A7Xf7=kY5(^0S8Spz!HHz zFiE&ucRkMTgGvMiM!*4t1P}}2a?!3|zB+#M{qg9~uhf8ITrUydf4)6?cKPrbNKW5; zOW%1zpFA8ETZBGeuV483y$`n^zC1Lm&o5_RZ*?5M^5D@gejSgdane!iFe>Ya)FOYbh`qEL;KO7AcBbxS?Zk>6pbU~9GLQ1cOka4=Cj$+l0EHAq_b@A3AQYp^ zRH>G+bg6}^zWns%_rCi>54VVISsq@U=IiS+)i8?iW!nzNS(qK5#jLiI@ z1VByG)Ozou&(myXrB>wpL!_Cz4-dv&+MV4&KHNNGhWBAka%wa4%}to4mfpLYm8v-( zy938sA|cw=0PIp7W&*X=h|?4tqYvJ*o@n1}GcnkP?{j;=&Grp8GXkTJ3`unh#3;33 z>?1W|E~*)JDR&DG01+;b(TCR3%~-_xph9w|t@4Q1X&)_J2gJ*=)LL>W0s`62U?)(~ zLWFH=B|)*8r~OZPVK6f?9EpgTw{26=X_}U0Vdh$jsJabiHjCc+G)-$??@n8^t%-_o z{`|}lOgVFEq9};c2~o8yeT@Jp4b?T$UqE0`Z#^4c5w<%aQ*S+C=_2B0BDyadh^BdJ zttB~fU6yoy=9%upiJ+yl);NI!5$UeXUH34{;BjK=txeM*!jp^ccb!Cb9`0ttYAIt_ zWntRKg^@m>yfukZ&6T%{h!oY)2MA#nAmYRlQDGv|pZkly{KG%~y&wI-zrr>S_m02) z`+x9ve)ZSB_4WVV)v@??_TdnUET&k!bbeg)y@&0^r*#E}@Pp9%wb30;7^nOI0RR9= zL_t)qrL80~`c~^)k5lW$VQ)Qo^2PVx{oyA+Hem*~SI<8A@CV;;+qO2=t*p^}Pd>SwM`gaoVlbyFP(dH1Fo>~iD2l3myJ&CVJL(k0@Fp-Y0H>nu_NLyyMjv1T z^YY^5;r=xjhA4W62P-fs)&Vmh%r+5002D?&I@qa{Bb@xQk{eBkSm=KAt8)DI`~J>V zzpo)d!%v&HAAdexyo!%*Tk8+reM(QC`jeAQyj@xil9wBO_p{qS`UKA|bn)AWKJ)#b zd;k8=e}Fe@uK*A7rk`K@qZfGbicZt?_9GnBynF9NAzY?ePz2_oI3D@_^%T8PDWE8Y zU%h&HS=Pg2;Zn!gN|7bTXCMB=my3wI3afnSz4zXG=OM<*98|>iaUYH6+w$S(rzXrZ z+;BL^SZ~|Q(}OEKsxmic7Lu`U6cl5ya_?Ih7_M5qb*9i-0N#3kd46eQj8a7vq=49P z1Qo^MFnKl#-i5i8x^8RcJ*0+3SjMngD?mB+nCi6i^#TFpMx2EX_1M$jsm!p(X_iN(%mg`$HIu$Rcw&$7)0ly>b{3O<@xKGrA@nEI#&WxGJGOl``%O(g5F!9 z5)L!Z*Hwb@T9AYmdHTmn>v&TrxDtgft7{by<&xgCmTP@ke=FQ-GPx zj0k%`H({<*Ahy;@(NfCr#>AudI!&YZQp!9}De6f8-cNmDh)9r+)yL?#oZAQVG?dz zBLGD%m&-iOAliv0Ik{p)I!;uXxkoQjSY+K+CYtAYn1QH|p(=?v6OlefrF8b|?d3d` znzPgtP4#B1K2OqpTt9l}8^7?^e*EL_t6;mi$Wi{@Z~W@7{PJJ$>QC za3U8n8o7!BNeB&iDPcY$JkpXqQJDJ`)wd4gooV`occ#UzUk-e7)4%uW|e2!YK-g!Jfc}#CS z^gawGFIxFz^zXeq|G_8I<<)vwU4}oHp8WZ*>DS-#ho#S9(RlItdB>;A_~A4Elh4RE z{mL7zSM>fNih@FjDHz*m%T`Y(8)4_|!PQk!F}D$hZ9r5{a|70!WvU7akYAP;5q(m< zZ0jWDtw&EplvVn=ut?iRDU)qnx=dVyc9M#{dc{}e@boc#;r=L{tdkk3sM9t&SEfTz z6Ly1J3?Jr2Ih;x4)0Z!Q^4X_6F%fC0Pu_U*SZZI^Iv*lDg0yJcdMy=*HhL{}*gz1g z02rCq4VVpPVd2(VEyeGYDH+UTeS`;#yiR6SF0J*nU%$r9)>_)uiGudovbzUhsg>{E zYXU_gQ=24%c2ZE2T!7q#lv;Z4DW>IJ$m3~J+cOVCl+Y17*GCabA3z>)YTmcCuPZ3B+ z*1z?$2?$XheaE2#L=;4*wPx&HovKHSEhm*6febL&{q)T4F-B)1VP2NC6s@)P)-<(u zt$~ob-c(q-yV)SHQ$%FOdiXFFN$zOd+Md$U#_4n#!&bvGe!(*O~9^eY} zEzC%WJPt*E_Gi9Y2oPy8*xUDh|KEK1kALu$pL;X<(q286a1jFW)%Cr553d6OP@U#> z?t-vkRSwo0lT#mNAQvAjBIF!SF^oDyX?H4ws}?ZAg(NIMWFFDYLT!|Qz-E!BPvmEw z-2V@Mrhoj3{^a@g`#xNs7r$7)_2$jw{he~S|IPBv<<)=p zgR7q`(mMDaT+kX6qGj}^haT@nEW7d-K6x`f9v)|3*5q>)Gd*WBK8; z+wVOaAFsO73D+HU+{{II#+7k95(wY>h;7u6AAJ9#Pd|P!)gn~Z#jdXIU*EspqOh`x z^sV)Etz{;n*0w+fH$wL6I{+jr2!t_)vZ_h|vRmGw_W{H{y9PicnFCFfGe`1bvH~bMVKX#69BOY z5tt+*wsn0yD@#4d0_oISE(?p4vIiOFJV%S# zus%8sx^rJ=hTD$bsHNP+iXim>#B9l1rF{!rRI|np_o~xA0o<2A{`$5_n#$hxg|l#8 zo5Z|r8}EWPO7i*W!-mNox$aDy5`}b#jP76pMcU$#z;km^$sBpJxO)iuetUOgx~rzg-BIQZW*i;FNr4Inc*opiYy+nTlxbiyco7f8iJZ`o}-~JwN{h z)-B3E{Eh$W=fC!?|MlPcpQ&_&4U75uv|KhV3U{7oym!Dy^LhE`-WzY?T0w(BvI8v$ zGKUbTlN15#tbhG){K}vE`9JrYzx_us;J&^5_>&)f@4H|6+5bOhe-dnKcIEeB|JCgM zednBe?`yJ80GUVtiKY^L0jNSXB1@)4iWX^l;ECml!x8et16v;0j*ud(2sy&xfx`n! z5fVk&YAnhssVI^z6-9|vY>L%)s3O`#k3{ybzxSN)+k3CIJXqg-MGe3(l%of{d*8jM z+j}+t|L^}PM{mc6XpPKJaej8eBne4lrYgifqy*QATY=l?Yj{laygmeum*e$^d^MIk zSN?E~VdFIFJO`7W@2B%=IOH(t%`@EE$=TkNWG{YYK~{D=)S$!n;9D2+(WmuO&*QbX zPOrX2-@B*H>Rb08{POSNHxDchz? zKVK=d$*g555*}l05I`dveW;3W4m-}eK7!oM%tb78zXl?B9i#RG*aecNvBWZk?dMOm%V9rl$*!!@s*wT z#2A!PtAM+gQkl7}Ye|EWZ5dv}%p6s#nX5{7d+!H-;v=8^=YId!eo6ZxEN|aE{>{Jt z-~LN~=`XzR*&B9Tm>KY?a)c8P))D7gKlD_imEV7esRz97D$Fp<);4;_mWUWOOszfn z#1nt+7ybvo^#@<^AR*Z4(YL<(m7n?-{>9Vfm0vwn3Q#D^Q%~I9?`C+2a6dM*UdY{o zWRMDig-eR@C-d=xw;uk(FVovs^2p;f)(59JIjIsc4mA{`_fVa0UG!P$=FQVIpFMYD z_tMk2eU4`iWe-g7%1+V!5>NB=%=7cdo};(N<)3`}`1K#2w_5I;mjC7t*WdZZ*-w9H z{)wlr_Huf$%I%NrzCi15e?7kQK(46N14ytMYjV$k z?c#VMWki61!U&Jy24Y7XS3R6Tg4zmMaj<2N`NPlECwJo(VP7N0Oc9q?I3BOwey5I6 zI``3Uyzg1L_0&nrGO4sSIpWQS{p)YH*Y7TG+?SP3r^YvT`wu;P_Jx=6{KZMEPF&VL z-)qY^e=xpvDR1_ADRQ_8Wn4^{3J!{03+n5=NAnZ&I!+_p$m_0>FjU*p!z>~$_J>`a zI$Hvn$Ffc;b1l)0V9eumygN=;)nndOEqMCo*)Y=<_}$<8<6)y7iZQDmZa(o`5k()8 z+Li>gcoXIB%qdA83u&M zFw4<2kjIF(mQ1`YGWPM2-Fq)u(&m*(7`c@tGP`!_WpUrum55n*c=`{0jL3015Kf8h z=-Ha&{YS($%-xC>QXZp&I4t-_D~q@t=MH z(x#WMHZ!vjGnrW$o-@Opm}SetgQ_AZzc}%Q`T8T0x4sqo855c106@b`h*^2`o;FN3 zAF$ksWf01yOA8Yfcnlvv#DI#V*-%7%s~aNGfyA4T*SEZNN~?Ni{4&wHE?ZhgQhPHn zgEpb?MwRgp*{rGoEbB7WDcdptfs96OW>%*e!8Ywb^2slL?N5ID^yW9_!Xo>xeEXZf z_&5K{f8~GiKi`*1G?vTLJn3*yA&(wK<@xjd%@5)*dx4ve#Z<^_Sd4I=%IqV0UjRU4 z4f*89KQ&7or=wJzcIDyQKm7hTUTxm=e4r_-Zfc|^Z|^TroGhWFkc zPw?qk#b5l$e1-nUKX~xf*KS;{I5N0ONsC#a4^#!0h=J-fBAkU7bq5k)z=`(fuwIGxLwcjft8yWM2F z9gKGj+`l?~>(1%TE4{PYJNK81RL9IxK9*RQ4~ zvm9`^g)@dq^5GY2WmlH1fAmLR`on+nrAf#KqSTvD zzPC;XrXWI@rFU!HYRc-v$GGMr1eIySZ>0Jry|MZ6$yqVrh!ElIMM}{Wuz2_M(}{@n z!NMg4?&hf=N(gT2Jt8t3(<5q4Ke?s9p{*@4a{*vs8|Ito7$IokND9+tUp>-Yw1U)T=V3JjhUG#A$>p; z)qx;~duHwt3%iGJk?0aYvYs|$os{g8MR^0Tq^jz=T#rQC(&ii?(Dg6ih%HM!EZmKR zv%t@S!pz1x^7tO3GYi6((@9Hl07NR%y)!ctjc_Ik(6zIlB~=g+nS4UDB@Bzob=eW1 zpp6t6`E)1vdh4qI%3=h#_Qr39_G~0QtCCX3uv$4cTEr~EQ&kW31dJFz_2m1%@H2n@ z*MIr#b$LLDckiD5pa01(zVgZ|U;N~!wKrJ9T-^r1ECF?!Lg&2!Am<=kO*b|$A-FeF zm9g|XRSAOoXFvU^fBqMK_V51MuSIZJKfUwX<=wZKeJovkgxFlCn};(70Wgm;*NHN^ zg{J+!wN4T$S}KnfTxYp?>&8n=PZ4NF;Lv)wQAEEwi3oL%VSeoE{mUIJjth-``OdxB z8?GMO-K*Ds`|CbedH%`skG=2aXWy@{JSQ{TBtyf_x!%0R&pvVc!_SPbzIONbzcD$> z5ALpafA6&4-T3T_`ib|P&g1fe3l`))~KW7Ed1fuFw?JLr-hJbID8h_0)##&oBBs zPtV`L;V{e~VZ-;Qh|eE-{j@YS#W`fvUAAAaqtufOvKI7Et` zUA*+MkM3_=H1}F{j9}7fX7V6KMuZkE5#er|YQ{ZrKD>qNj9f_)C=w;2YOMhn!X`nao^NMWpo}772uvl7o$4PWM8# zXa0Du!_0{T89q|clXEBQw#DC(k1;5Si6FA!FcReG!NMXxI#};VUL^n%=Y8mI%u-at zk@})*u*cZ;z(7m4NHfYVDKAFiY^3tsG;;u=67HF*D5<9i-_pE?yEzxmC*As(<_ViK zZj`Mm-=a8d3{j032)gcyCnk%0D+`DbsXC|yHo|j972)BqT(ykW=Xu^x@M+tL?W=^@hL>81!_22? zqGrS8CqDgi-+A>cPG5eEo3yNjTsZ z!^G&BC!gBQ6MJ-b@?al0orEWu=Ddk~?L^V827K(;>GmG%=z<8^?FbA;Jt#!M3_#k@ zG>z0`osrseCh-G{24B!v$eA! z@88RlA9(81&){o!AN|2M*GI=`84rK$%j0*y{lw=#j1NAKTjhA>_W7sJKlMDm_SX8% zJM{X)>WqE>2;kxqoKjgE>YIIWe%MaOA*boc%f?`bwqb(d3%yY2EH|HdEx z#vlE`ul?iSxcl(l*37hs+ZK(SITOr0 zVoSag5n}R@T#d*e4FZimgxSp9jkOR`z|zw*u?=A&fXL8KGjmIRt>)}2uGLbAAf`BBo_h01_p>&D29zZ)BdRfJ>1-UXq~2MG8>+B!cvHk_OIT18WJL6m=P!< zL93j`WFoQ*0{O8n3}$lM3?LC{^X}ITK?rlu7OW&i-8}a&?yk(7I#-9Yv&g!x*?CcZ z3z$i^yDlZkf0_C0Vn5L)l0C=0i>sfgCHMc~q(dUg<5 zUjP9X$+_9%6%c?35J5x{1J_+b-WGXxl9IcPF>09rz1Q5rf`9$D|KK0}*6;k4 zf8oy!PqtQ4VDtPQ(vX@?C56)yQnvoMepW-9TsU;O;D&prLdJ9j~& zME}x1_&YbAdG4^I;ld%JrIc#Jv~VqDd2r%KtwuCoWq^fvnmF9nE0sdQ)|#9exm>@R z5pD#Amc$MM0SY=)Xn~u|7hr|^bn`F;&Ya`UeL5{?KYYEP9^Cum@4o$&@7?`}zdyb7 z%=3TdQ|0|n`8nEbV~%pz%i;X|V=s+wzJBL-UX=%HdFx^O2VXw@#@B9q=B52B&-JJD z;XLFc7yA!C9pAsVeD!sH=UA7Dq0AFTz#NlOVLMs&?5qM-H_!NF6c1YChVTcUq2~|v z3@2{2nvB7ZPX5|`G6)x+Y4^f=cKb80h+3>KV~ojJ9*($kkH35G@;h%IzyDStYL}-Y z$L&wP@A=QYj1N5BZWP(E9FOIVhgYw@)xY*|zS48Q&4&xj%4LFvT`f`+W*{L8jGh;U zRK&VqOmt$5q7yI2CA>{if(VG-hfGDQPScFs0R(e_k2cR`-q*g`)!qBw_@h5rAKtGL z7Ez^q{G+eD^x_Lz%cFbu$~=ppwO*#Zco~r{rc~J^()`%!_4|}JeHzny+s))hg(m4{L?>w|dE*Sqn3@b;C^L?UmaUBFdPY@E{@K?ZYmr!-g_5 z^V-@pO&lET83wu;EWoX;5l~fPN;kyzD@FvO)|v-;_AXj9$yB*QPW2Zvw`c?g!N$lL z39@2JaEKd$mrfQ}k@?u|cHutEa?u?TX{INlwyvp<&TasJlD6K2*(0Os zDIcA6L&Q{TY})Ycs>?7%RRPg*TC^y9gR$q`-g;9}W?t5%Xw4?KYBj{NE~OL|_TU#k z^4XU@@x?#+jlWd|Rm(f~@BiEX-oN{y7e4Tj7vAG-b?bZGqlga+gfI(n8-oK{Ci1>^ z6V-4`huwNQ3DNP`>y8P;jF&(1p=Y0a;rl;$hd7koA1s&szOT)PQAFAAE^giy#pn%H z9Wq>|-M+X(WPNxP3kK`O4ROL6e$NOULC^vYIQg-W2TwbApbrqCRCGsk5U9?GKo#^J z&1fQe{x*zuPd>97>&5ZWqaS|%^77up-}=h8zxmq52VSfne(vIv@5g)3PCN5kf(wrG z=b!oT)A-JVtAFz9`ud&efnELPSKIG>^VTOnR6g)Lo+?+<@R#=GeIKh2Tl?A@<2w)J zoqN-C6Rvq}NC>2Yij;!3qFwoc`NbJe?vGQ*v*&&&fqqau+$X~n|K8vFm4Eo_-~QgWT?T@DSS_W< z%c(mte?feFhJ!wYJ`E zm{c*djn~KQ?nR4VXVX2t(m3JbYZFyV#IM_M&tXYUx=zbdYt8A)*sv}_Krr{-g;>jv z@AS?IeNoE9a}~*FYK$?}DJY*8PA-#gQlub&cuOlZ&x=bl+9*ckt~kB;z4vLVGw%?Q zsHHUD58sr?qLPtH*T=CCWQ2i`gz&r}&3#!;*$4F2OG3Mrg_);1Ws|%0NeCMw6Be`c zP%XJ;D5YeXQc8)GF$~ip!m_T*G|ldo_~Yv)apV(Zo+RWDmVAF~g5NaGFlQfArzs+e z%CfA}RDBqjYN@UD{H=&csxX)QmT~H(?mqv;Klj#a-+1TyU-8~l=0Ew`H~*vm{FnZ< zfAxQRw%_dq#J{^&Bs%DO+9>2A8}Ej$!Kh5Ilcwk#{nXU{zUUa4Oq za&Jp5+8-WSCRK7{nWr+%!sLW-s{2V*)~3o5DZ&f_}j246^0Y;Q01 z(TSb->_Byor*98aAq_liG% z-p;ra#i{R3=HI=0^-td7JM9U*NisoqC=PN6frK3x01P5=wFEkuQxHmpHB`lD>uDKg zdOiyY93!Ic5B;>7g$OdA`RwehY6&}%5CO|^xqNup*LHEEym|MnyRUzj`!ZFb@Y_$^ ze)8$3kIN~>di&-Dfz5`10m3qHI*qHlg)T6u9~jS`@qspUzbID~!m`AxuYT`u{D1%M zfBUd)Opr&I9%L*=|dlV--kZ`{*Qg~aJCcX!9-j#7BR>j z+jt}b=~&L-pvOT5SsiBUuc97CAQp0G0DbhNX!kK}j0{F~kKQ+@Z7v=%+pVvih%&pg z6b;{qwS1jGXEqoc0KzRqBxBi_DPyhMx^5dy0Em>-`!y$>&>sB4Xl=vTB+3!6hX;_T$3`1L4C$HlMS(i;9Xy#Ih`@D%&Q8%;8{WAA?jxn84v9 zU2JBSFn39J8=;hf2q*4sFlW=`2u{6M;bLPXFN~P1`(~l^XuUB@QmlbUIYjgTz)2HR zjqujTHu*`2yl;eIVoHQmvPK@~jVGo!gB}z7>+X`XA+!7zk6_vu`XXY(!Z&JmzR%XB zF*6AvXt$rouzbG*D5d1qu8m$)nHY-RJ2Kck(}cqX8sWVSVu;ch{h4Q9`pg&p+&{SU zM!)}-59*cw&OiFKpa0pP{R=<$*{O1jwXZ|xJ&7QEJzdSaoiD-VaJl05|H(IBedGH& z$$OrD@~MlP?R53bd)~7@oSk~Z+4)uPUAP|?l?vkCNpuGBh+*D@X}_yJMq65`U}U5Mf9d?gx9vQ}4r__> zk*DsIGdinsqek9KCv55l>X!s{E=Iwg}ruP?w#b) z#ya9K*C#G;t6teUE|d?Y&QwoEZ(WHj<)W<(Fed>eQlO1?SaQFJi$9Esx{pxG=!8q4F?RTgXN=3r? zK`1jkFbt*IabX@*iMYnP!UEngF=RCBdNxhZ%(%s?n>6n*s)Z&J;nq8{pw%;rC0hdSj1DJe@sxdw;m`!H>N1)Jq>e zzwz9ApMNj(ECLh}q*{4dTM=R*B8J1p$XPrS1t9@Sc^H`)a}IpiV>3k|Vhk@u!((Y{ zN`QnJs+1wya1lv4WiAHHEH}N|bi|CA%?GwV#z!A4lt0{tQ$#6pJr;r{T}?Q>Z=M8h z0{)b`y`|&j4<(kgSj%-9Yf6OkE-`avJl24z>aal|H{X8Yh~7F0!vhq;5){OoVNRpUit6~Pw(f+8!3oj zePz|NvxBwKyHlxu`yYMj-}rz0JFh)_eK(h}Eoy!*xvf91F1w|?)XKl9o8*$>M5o>&TeC$S4mdwI_X_~8rut$Y0TCBJ)5AGG$} zZ(RNp#B(>#fAT~A)Y%acHzw?#kWjnoYSv_oX|m#z)*8*)qjK5#INH1KvJ|>;z!Mi* zo;V51aZ%^FW4<)pxxx<~j<@gGoy+5chjzMZ>%d&~*&EM%`~&qP&&G|?6lE^7`gBEj z>(0YJ_)ffeyh(d0Hy{PG0D;lK3MQyxbo77?^dTgu6(tZ(T(Axdpe@+Xq$E%8v8R~1 z?39aPm=JpSFxOHCeDu}Bixg0ph0eS?6th0s2&UudIKqu6Kq9(7zfJT0YLG@1D&gy{ zRPQ4Ip!v{nl6h=$HPhU->(~^7k%JEeg@#2!N|j z2PgT!$3FFekACX*Q_nsB;)hV@(XCEmuI@nycz_0zgV=@#yohQkx$903g1citWs|^$ zhht>_o`?s(PSz3TTB_L~Vp7Qo@UpB-0e&gHQjkkfycS3EFPYx;)VhOwcbRel-hekR-iz}J%K2&alt); z85`8jeI2Wk3X8cp+}#UP1l%kx)G?9Q@(x2e~Y$Q`FwyYqg)3WGwplt7B zL-;bODihoI@t58Jw5El7YytpxEu~~=HZpD~(oYAV_fbktDuNiAuYm^;^E8XsD7)LL8Dyh_O< zwz5drY?N9@8?CpThKvf8#&@SN>=Ja-E9=GJG^FdJNVgTE6s^Z~g~=<8QtCgKv5n%R_(g=IdcL+`jhh z?^vMJommt}skQEQSJB7$t=rGM`0$+{;=$X|dV$>BU!3m_>E6kTY(CqAY(1`Zo(XJ^ zj$=8QM@8Wv8=xU*11)%xuujpTnKsqP0s#!(#B5@^n|zEg7XYk06?mWsM)%ejf~i8% zk3I&-$yc zSnc(PvMl4y{p0=1wk)lxK6UfS55A|q_#B=+bAf3vqZrYhM((FcfWC#PhOY<|qE==91PzXl| z*eyAB4CZjxsmy0HafG>u_^>fXgw?8WJ035YqRx7?yGI1{mmBUoA5+A1p%_3%tBU~pWs zxFgbNZNp4em}PiRdHOWfo>8WRqGgOhN<>uaG)52K(iR9oObK?SLPbl`{jv>MTdSp{ z_KBE%nAu3fmV?qGCn5&Bb_`JFK&P1BBiv%ccr#_j-($x$rGqY40xId^$_;aCYi?NS z+H0H(33Dr2$LMJ$xIX$(YJD6Zm({jiGj}C2Yo`(!tK`5xFT7w9QBb7m#5dK?2EQ7^ zijt@@@vviNIhb1ntI9B={~pG@$Mh#6xFatsQet1z2vg-HeI*7~w-yl2#AE!^t-geD-vrTdo$%7TCv3fHM(q*emylLJ4am zy4D&15pW{Tq9Y;rd9g>h8!=NUiXiuqH*F@r15i>@6C?eSar9&gPTjAb%Hq;!T z)Ju$EwJMauy=Vz{RcWnBzME?8Z3tsoS0+-DbPjei0!`E0*3rzKde2XM=8J#vSAX~x z*1N)Vwb)<#kN?w`-~aNz{6GDl^hfuWt9z;{lP<@0c5(KNZ@>O;{d@oJ@BGd`sD9!R z5^Nqu8eAd>1`LiiLaBAEkY0DseB^VV|M`FZcmLkseCtbZ&voLZTi;BzHmqGO`!e;V zkG_PnM+gj6YB>nY>9|O#^I?vw93*wxO=y-Wp6(s)Bn)DVj%3Fvfr#sbD$xtzQfzEo!pT4^eM(7k*3?tQy^;sw#%Ao}bx^~no;-wl2C7IxJY=AA-x2v*?Eqvb0< zY~OxU7ri(IcGYThv^ zO2BNKy89@H2@y;TN76Q#<#4uBm7eKx&Z^3ATDy)xy<_y92>Q75=&ir|+JB|W`~7@* zb+pUVH@@`c&wt^kZ$J0+!$Y6kQ$cRwrHVUpl1@yktpX*3 zK-}_^2Vu_gd09@S6e3Ot6Kz&sVr6nNx6#Km)lzFR_>#p$#Hx~3?G(ikQCKb+BZt+a zkB#|(Aj;_iu~1saa%UNUvV=!S4w>t);pXO6O9_COy!(b}%D1^lAAc$3d95e%=--5E{J~EeQ)T%PWy{ zWe=d1Vo7@y(V{>srkgRrHPy9X21ExNszsv<%R@=%fWwB`$}qLN}mc4h{bkACWlZ@u>IFa5(` z-f=_3o%;{}t-tnHpL^=PKl_DG=ydFDkkjt$#yby=fBnDw<-hf-zv{m3MXg)!a5@oeFIqW}=`{YSDsV2!|O3 zthr2ecQ}hNmIuAYo}RdktA}{hV2ZlKad0$LK?XY60wbtG6wTodR4xq4jA()(+Mu04 z6vLPT5Hz3)w6gVd+CmwJ13&jlx&P$X{)@kfZ+>_A_M5j~c;V&;-z(4G+TWVv$O_1x3%~a+6e3Oc=!;E8*9S^MPN4xlq7uEdR*sSnV&dAIKm-1j@=@5(+-z}tJdDW zU+&$HI}2#WJhz#r7jNR3bKE?0GC=$k?xSFeyDJ_(I)3lX_Qu=x;Od}<`TQyD&Y%Pj z1j7i-SQ*W+6J+R%11(UQcISZi%cac1^9{6t67Y^P>p|Q7W8KYiwg(fZw=3WZVpemC z=-p@{a6xEl;-SpS6fus&mzXAf`2!!h{}Z44-q-)=@_4!SmFInsm8#}Yo%E)h1ijXn zrgHOQSw~bwEvx(YzV(A&`TM{AAO6RG{fBRSZ&NVNo0n1x5VHpYfW!W~2<5F#1os$&`5 zdl6Mpho=(K&E|RTqbF<5@uy-L0Hu^ZMvQ@!)w+pDEoE(uiF2V%NX9HjtYAr9`nBcjwg`bfo)u;hp=jRX;) zMMb%{(fcSxSY$H-CxI$rw4tSFQL_OjEs}`!(T8xJik^_~I!)n0%I?mw5xYf&u-VJB zs4z2^h#ZU2e}6PcZi8#BiQ3JUEmQFNHCcDtb`a%^h?tng;Mw}+v&KZj%*H6XZDu@N zuA@>*(dM0qgg71ZB9gK&0O^z=V)v07r!4id!XWfMggGl9=8Y^8VX15j z2N8|Y_PZT12V%7DMiF3$s<_9LgF6r?+UU$8!c17!byp8R{qukR-8X*tgRlSAMB}hO zeC=D`{y+U+|IPo)zy7cN)Mq}@WgSr-J?j7VfAIhQYya7Qyo?hAr{f^5vcGxri4T6^ z&;I%My!b&;esKBd_~>e$syTSSJG*(KUOb`uXYSv>L&4~ltt(S8N2K!~zC6<^149Irii`^(?{%9q}Fb@%SW=j!eE)N%Fh5BE3TUFTZfdt>^* z6XinriRzUMaZ)-m}51zh!&r8!QB2QZ*a$*BLT<#+Eq`0fwackkakJ3HJs%ojIM z73j8(P*xFu5riIKh8tMG45IKsF~AIjPJ&qgM+Hit3Iec26%fEWR;BJ}1nnN3-T6?* z$jYfGSJld@WnY#)dRs3l?dG{JaixCi>6ib^U-@5s>34tgox5+|efRZy_uuS~9-YP- zW7+K$W4XJIU;FLfd+vo7&!=6ZH`WlE*tLG%wy-sD=@SKAK3?h)($b<?ZNZylhbk6qU3-Fu9~a`&lLGtW*!i>4Gj<##z)+-iqzr_<@0 z^AV$uI@fh+Oe96zq7+rpF)Vcsd9kqwZL}7K$JyE0=mR!9Ol!$u*|IF9l!zc!INVH% zD725BL;-{ab*A}=kNwP_`{|$m7vKBB%crY8&Gjil?@pl6t?my%GjI>x zX`Sai)oSY+VA7pO832Sp)qDH)SHAk{H@-I(FHDc_USarH{cN5zWGt;;wWprE(2(VR z@0TOm=;61XxvkCH-E}w5({8$W^8EN{J)9lx-Ft9#I_~!qhWoI2x0@>W-r%gY)>_8s z!F+acK6+n{EAM2Q%H?vkE>|ZzzI*rXx8C~U*T478A3S>ZYV>E9`jhYb)F*E}U!AD8 za&$T#@!E;cCfwfpu9xR8$}@AD$tN%d$6_b9(^@2=!%qvr@t}bf9;fAsne}2{4`=;8 z;qA-y)wktA-<<>=_Gtb3cfRts|L9kL^UZIM|3*Ii?9-q5=x2ZOlb@KF``X_4;k&1+ zM`ComJl#4we|H>j_5<$RTSE@@;KQfGjsYc9qTV4@h)A{ih;`{up7wP(FYPqKrpB=> z_a8i5$uJoP-@AIyc}!33gWBnIDl#p--#b3IdwKPRPk;R9|3`lY=TkkDWnFz~Vxfff zbfh{-Da{)MB7z{1Y2H2a#b5X<0}-}-?>pb>>(!e-{Q8%E>({RCyjBR`d+W`A^Z)*T z`Wm#24RTDfu47IXug{-fmX%RCA zMb*+;>)oYnhiPg@w;6TfMwr|-z0=xOb1zz!byblR3SFO9A}pzk(W2KFI%T1xUlWrJ z!B~2Xm%kdxVRMnOTGubq{k3k2DLftxa{BCS6+#_j$MLy+=eX<#;+J%dXa> zfM+w{24g03%XZ{+T7K*cqc>CGln-ah6(UZ{sg{~M9kVS?J@3yq}TctgCS4FFru`HuPOC=e7?P?AO z&2@KHL%6fhI{4who0s|k(x+G!lj)JK-+AkeSMUDt-l5&${^nbEzx38?fBU!p>vp+- zu{0B5R$1MNskg3zj5IjkP0_dQB}FKC?=;Obaah0&HXIy0iG!DZ8fG+c@BQ*>2_a^q z;KjzNExiPhGcmb%ph3*bKmNuazw*z0>h`nm?`EQ<)?LIyQ7Lm-Ed)ftK5VW!m9ku& zL`o1NLaV;;;>Vu6dGqS@nFn_-zxhwDG>)f7%Y#S9-~9dG`OV+`{TQaD4kr@X@20hT zHhw=B?XWrrrmL5!6m&s%5Gr5Y{~j4yB*SX)!ojPMiP2zZ+pdyC%Vq9vVG>$=uyayJj3=c%>s zt(RI-kLz1rLqvp@0>mInJP9XJJ1C!o(`iZjVFFRI*GWITssh)d9#y}NKML?PO^8_6 zhCD`?QOdfmW;WI8;V~j1Qjeus`E!fta$4qjuBHCi7e@a0!+zgdhfp6q+;_WuDnvEu zgaB<>>d{&Qfj~Ly&lJ_O!4uyp91_cGi~=x zVKySp{$q^6Aw-nr!|0>dl0(Uq;krFGhX)C#MgHpQDg)3rZ39cK8+ahuVIC=^*nBh| zBhfLvHLaR=H5j9thlZzIj*84YJ z|NcEcJ-Bxa*l1&zsg?&rFv8$vmUsKr=sr!w$4YQAdguNXS|g_B_WFanho!R9(wA<7 zgajo6BRxz-OE0S8-Mo7Qms*8n^xl1tS5b7c#hM2PITIZ~H^%h2n;-s*AOD4qKL0`Z zAOx{uSHNON2nFU{LB!QM?lxK#O=hm~@T%KjEu^{(o9B5toZ)zkbv0Gq?Rzs{d4ANE zZ`_xMA+$$v%rK|3r=I@MM?UfptEYn~P8@K@Kt!zKP83u^Xaq(;B@Q^98WE({ASb3EgVLMr z?eD$)gZ+!ou_}wE0MX2QH*js;Zj?GzWq9;aKy@l@ba7BXiS9qV5;^?j7k=T5*S>Q3 z`gix`ETR!dTRKaLU^MqHM69Bq`xWx z$unNc(rBB<<5LB<%<}4&EeT;N$-qV*y zk%;$XZ+WI_i}cor2xOYNg3(jD*48#nRaDcRNL!>-TuXr=x?Rz!=H8qc%!tULQ!OQB z+QI^Y`AF44rdgPc^y{VJ4gsy&duL%{m^lmQJrRU(^KfBpy{9ICJS7RCMcdkx)ng;t z0UCW`_-gQ2^ z`JPXI@y~tYGe2{7>zOeCilRJeIkiTT;lE)v;3y;{V&-sD){C1L!sM-+n@r{G_Kjd6 zQ3SpF!`JV<^*XJmStki5OhzuGK8%cls6ZWN!Q$v16ewWsRz)LhuTojXqA)4*>ZC=L zCEON|VBXcr&Nc!fAQ94hA;ussRkV!J8KUzc3`D%=!*hoxKl9SZf9m}|`QpWUYB|TG zq6IyoFU~BpqNoW3Gg&P@a9Lzu2s7pot{`A4lUeUeso`WitITz6oq3v9;PtEd0nleO z3l=&%Oa>5rOj#t*3KDBP&k~;jR@hELuN#1DI(h1 z8eYhO?v02D3XX8TE>$Bu2W3T-iBfTzzksR+fxr~Vu~=@Z zb2sB2WF#ysETL%woaX8tqxVv(7RmX%2&G0T!{w5w<{la8@#9?>9)Q^xW8Uw=t@oa8 zltg7@jzz7R)jb2rlw#NEbz^h@QgpjiOCds@@&Ga?JuFgB z#==C8r%x!Qctm*AT2g__+iN@k2un_lGHxZt#y8IUNmY_H=wb4wejGM4%Kbg(J)9Fs z)Z*6U5Dw}I0YXYKl%@kFSAa`aO-GY$yNN(Fyd77s&I-IrumwweI!6;6B2^4?6BFw7WHvLz&J> zdHL+=+xO>}o_YUHCo(cbU%QzzAS&IvQTT+i)!`Bp180)3P)hb=sYupSu|$MjPJk?EJj4+A?lmT(I$BclONfXU^;4=HbR} zcY)3rKy#=G`#+h4i|mz<9OU17*oaRM1{ykYXl~@&g7UT88hx) z+G~$w*=KQRfUl!YJD6d2v9J5j-G1*YFMj&9w|;Q{>e0ii`yf`K5jH$9%iDMEibfmD z!-o&|hxx5{-(9?=h-F=y!?l)4)kc4Kyke2Fv;Deu5Z6h)+v&JooF9mytsTt47;8Vj zxR6>NJ$e{!F`QVWs)w)L_j5TrtM5O5uZ%(hp`5Sz7^AliDO|MdW+!iL>}Hzle06!L zy9&_Na@^P5?u^H1TBcw43xDPOhW`F<{>FNBC5Ro%?WdnSyLj?LAN|-<&%JPV^Qqn8 zOjP@7qr*HTtzJaL9L%Hjd7AndwNC50l-x0>Cg%AuK_}-1(=-hmZEaeT5ADnx@bGA( zF$*(kDKRV$M)z><%&ek$Qbz;@aOV1WqzNpYVKyx5 zU>~MM5HR;G$>usgb@U;kb)J^vsg&Z^Vwp5{hi!$Y76qZV!6JlMTUS*UUfMd9ntg`n z%9f~aRlIcXIqC?c42QF{?Y$@FcE8^rkH_4t67v=jJvu1NPRvf;)*#1 z&XEW4Jk4o^OKxD!|FToSwbTqmoLnto>w{FTu^f*0r=1^^4$Rym5dft?TEBC;+xeQ? zk<#XLEwW0!f%Ka81;E1XKSm!#)y-S$Qgo`*=$(QP zp(4Z0IZ#zxdbct^^|_ziPfO|MGv$Z}<&d z6qG8{YU6aZ&imb5>be|T>$~&47F<2J1aR1A?zfbA^3~R*&HMd+x4ZZ5U8$w+_abt6 zbve~qYHh6vabfAp+QvA$b<@KxA3Q9o^E4CD>A2iDKPTt0tV#+|kRSuPJ7L;k$1t;{ ziwJ53l~_+yxU#~45cKHp+?VHOoK@b<-bakqSJNWADPyS;%*b#jm1TX zrpn&6?9t8I5Wt2pXvc?_pZ)-*x?DY&4?BPn{j@aMRh_3t5ATP^{;+>^|K7Ztuhs=& zOiYAjZPR|9O1XdMj+9#FT|1phDLR$=ckazodE%+3E+1ZwwrVLL>efpw%eu14`K^nq zhgSqrod!ayx~NvW`Scl{-Q(0+Ko3RshqKdho~P@Y+==*bI83_Rf7F$LNOB>N>1&nF1Rf|M4dP0;l;w?YU0yu#qMyeJQu9pZ14;RrsHfKYkND+aN<}K>2r%xg; zn+zsM?-YSDaSg%|kr<5h$<|r|JchYPEo|n?vJ}+}27f$6x*l;bA-Z?>#v-}q%+Q^j zWUz2p%Fj6oFZq!B=y?<{vk<$PsEWuKl;u1z^*-_om^lzc+q%RoV-b+45UsV{Zg)B^ zNqMQI^f83V%-g!=_{ZE-3lY-H5FWJMps~g6xz##>z)Y=mV8grv7=5sC!mn6ZMe$e; z{9|1hMC2pQH9p3uT!)Q1O%&AH%B5^-HV+n|;NAxjf`XY!nR@R)h39L=f%Hzw6h!E6T=PlQ7vw&nvn@wC?2LdK%n6@bsr=60B5!vdJ zyNjrAQB&sbIkU^}0x-;wTQ%MIgPD=5qDb$4_Pp1X4zO+2B9dYfECeF6VPoU_W~su$ ziK5TfG9pxU?Tvt1s;Iym5jF-QL}h7BRhdd}gP0hForVwW%KJY06VHG2W0&{u&9zMP zPN}l_XpO~Wl3~r4QGmMJoyHI@WPM#1twl+QXqxA%tK+0qRA`>(vooz~Co=PhUUwYf zZ46PV`}0qJ=4Y_K?{BY+3KWF<9$YGzFn6<%S|D+Ic3Vtx04nfh0x93Q7 zipad%GXr(np_2%hXB}Ur1gI2}IEG?J=QJ)KdAQ7#n0P7>g}DXQdBPF>jYsz8i5Jm%4i~tyPB242 z4)ZuJIw=si>L8BQ=KXmx8R1$$iV4m)%8l^ApeN3rMUfh-+K7aC-^&z#O znhlr3?mRA(m1HWrJ)Z#y3ph2N6bCmmnGa_&Km?%}gM?8hZ%5ePkIhH#0|D-Rx%=*e z<7o{5BS=F@#_DP7Bfz?^wo0j!mi6)qLep+HdK+V9opxtu7dPRfO;z2Z4Rd1;sim}a zAlMz6TRIrCaK!1fu*~b)wH6`nqa&H5?v!ds=JW(GODVjzrdj}~XaY0R@|I<9uCf!? zmN$W!4I50vM6C}HBt%3WN4MrEf->6;NHS~L!s%LCn+P;)__ZaQnfn+S=E~QmHKyz#u#cQwY?EFAp0EsY& z+-wYN6!26on*o~K*gOD#ybFU_LeYD#Woo0@u&K_L=9*Ff+Ncd%*c=hlvMlpFTTtJ4 z;4sVZ>kX0U*ExFbUPOcwohJC`-P*u9JU~*Idf2kG zNB8;3^J$uxB(yBYD_ywo0bKxrN)E(f1TEr@kt7d@1f0N(0E0mSq^ZI|P6*VB?kp3+ z(3wOKfHPQYosbKx!rTVJ0Y+sY&<4s30OAM&Gv>9#6(?kTFQALPw z^l|FCp8+Ntuz(561s;w#uhyg7n1aB<(|$*qbP;GRAQ3LsLuRm$6fRtrw(jO#oeP-z z7(&U*qlB7Lh;svvBjE7r#j_cmbQE(0Lbjs4Nr>*gk+`zQ34Y)bSH;M8SNA9pd>Ky zGFEr*qnA?Ze%D)1+u3$uXW$2+w{9>ksv<2Zgl37sZ)>l$ntO&X=#L&r{YZmGN)+

vQ~5`f-EAAL8^`2|Ha>+OuDLTrwe-n)o^x%YlL9qTkjpwvo4>$*k+ zF)gPP(?(4v;yM)&jc#URo@QYo;@*2Hg=wP)A_)s)Smw$msERiaXCK|nJRGzcHHm20 zKrZ%~6Hiu4$-JXYj~h|7g!^eZmQo@-`8HWuXi-W&3~%wSMKuGq+PW6iY=N0MQy9&x zk6vmK6>}TC2Qujotv6965er+EWgGQY?ZcLJ35wqPXsu`|Wg6zKuUcdziz#BRT7)G+ zD0=S}!9we@?shYRgVmiUorQHOyU|TWl@&p5#=xY7BHW>+2Jx2axOQLKVJa#?6b4I6 zUj~YRfH44rAo_~7LIZ_;U9g-m2^3>l&^s!_2Z}`NCn`fj2^9%|;+b4#^gRq7_JdS%u zTSBMF$swSs&NwX#ZFC95gO0l=blSY=N~}`$J19XJL|~v4Ulz0hVgPW5atw>%CS~nx0 zNNbIV14;d3b8EeA!3TZhah$isvMj_9)n!>C!aP7IrRLl$7s3DnG1WQ0eX9jG(NrXd zB8}yu!o+K95x%xHkEV59Mfe)m9Ywcx$HT`MV>_uOmnEf?9D*gOFdfr*ep-0SpVnoK zO*^n1fB>z_I&6q=6035*9S8!}brn$-Zhdof1l?PK(w_V}EO2xXGekN)pR z{+%eLetC@CSTHfMFt$sWdhb)MnGqOpWeLEy%P(*p9g+Kw-doNz(}teNcx2R`yP4No za)zi|43VoA5vF7z6Kbig_wZOwCoS6h$f%PX4!WB#tK$$<}tpNZC9)vA^HTlw8Vxn!E zuIzU6v5ROffx^SaNJT{QPLe29Qm4BOySDU5VNw+zgAi_JZNNjoMU^~9l#E~zG0!|w zJ}y_O5FcX{(e3S9R8&CZL|W>++t+CyOsuM0EU}gJHy8{eJwCfD-+3F zNf_p_tVlsh0I8W?J3N1@0S=6YI)Q+-!#Xp;c)52aE7iJhOY;_FfJZ4RMW`^Gq^n#K zx<+$Y^fuPZqo_a#;N{U}wC-d0@x;@dOdudIyk8wjh?vm_S_eW{&@;UKbKmGx%HKaj>jt>qfV8WZ1l7rgu9Jl%~XXD22FO69I>H=A z2qD<$t*^C|smy-O#mh=rIbCm5O5LhPMDjCoM_6mwfC$%Y>6F*2DgwjCmU2NE-6llv z2s0aF1Vv7#TW=BJZf9p_oXkofGk9`dq|dToT6 zW&Z&n$+CHNv+x+>dRj{Pr00^uY-|gLbvYakIY!G3d`9@H>KL5}TFTabg@cft%DSxX zt}L5EBbiL@Laaqab@bkQ6XDe4SvRIlJ)M<+hyoyRs-zu0Y~)5gXRNiT2s2>UTbx>z z0-Fi8Taxj2^RD;iW_^qRmUZc)fspZHqxCTw$c31kS-6?qyS#j~9Fb%N*l2ydI>m6B zCWz+C3l(@k1j3|@qKJsrpaN#p0wK8Tq+r5S;UEG8G*vFbML`Tz4<`}XPpvmNv{s0? z8<;^UAd|#I<|GfIR4Ug(yS;UTDuk&Bs*(yy!93e(MQ^cmfWiPLIQBZx{SzK7S$3V4 z3}jK3;s?Y%<; zwO}fdSSl5WUTY$9)#3T1q1I@fi+C7D2NS7cnpgxNQH2PqT5H}LIG|k4&(Q`>9TxDA zS}+`I7b&yuSgSFuYj;O$>j(>m#~^Z5VQinQZo}ZLysj$?*SR9XdIxAf&rINmd7gxb z2&%#$SQL_4)I8F09U%7*qN)-e%xI%IZ1`B$B>-0Oh_$yssEE0B8^eZ(rgLpK&m!s` zHmuZ2oRW|&5Frn&ZH{dtA#y~?1Ml-Raf)h*%xsz}n0g;eTisoY5^dj`HE3^rqlE&k z_XsBjF=w@&*H3;D1F$~E7)7;~iA7rL%juMdzDFeOBKwt`m1TCE=q3@?bl4F@H20bb zL``RLz_X$+wb->(Y4ow*?}@0jmUe~h;v{UbbP?BSq$DaTQcLj&5oV!0{j-ADB8G>mre<}!en5$O$|%4e`@$IA9;ZW>TA0{}hdU86g*0_gqmSNu z)mn-&acg6HX=w`}+SXY_rPM7i$PyKqg+>}^B3&9=d*b2lwM>uaVB79LfonwJUTeMP zHgCXLMB;*dZ5>Si^qVg{ghf3ZG(rj{19;Fa8J zI0aSS-`tS`V}KmVLuw5OY}|ap=spH1qjxaFEQWy@Q-PTukG(AphYh$x_;ht?r<1pp zOM!>2Yn>|G?6i!_BQtyJaa>@AVOlE;V5Yg)x`M)bAIB>Z#IlTKfff*Bs^|m9BS3H? zBFqz!#BdnU*&lXXxh-SZVC6cMQaG8&XcTu=T#g*pc^_05Dj;z)^bRvH!$zqUL}89~ zjkY3jGHZ`zDYb&bdW+E?n@+c0gn(h=>IhK~MIUxN<;lXOf|+*{2+>vugT+oQPR&ni zib`NkTG72N>o~0l0t7*^n02xT%hkL0$I=r~)7N(I&coAjNu3@s6YIR+Bf~J6TkGq( z?Du<%fq+12okqTuK{iIXF+dD>h$;zNn42*pe2me%bua~Z?E}gzrPSFYm@?kj+`On} zF|@9YnTwXK)IhM%xUPkXsJG5Uk7wQaF<;kpo7E8Kuq9_oxw~dUgr@bzm~)Huw?f~ zCa1Z1IzJG|D5r?+uePx^Q6_RnL?6BPZX4(cS${K22CR8_Z#`EUARw?Ti(QL%HXuck zPnnr`49kqvJjw{@E#pCxaFqfu@`y2ddZiQOmBaRY?S5nz@z1z0v`8vG6Rib8CY>h= z(9N|7ak2$z*!CiYTMCp@U2rWt@BrmiU}m|@xqbl*pp85nY2{Zf3ZmXyUV53QB*_~$ z<)XGs&#`Kl#?!LZ55>maH%|1_eAJ4xLfb&V_Y6(n&6T35vEGDDob2l#k#^q z^Z^z*%%~Ge!Ei9sRG86I46{xDzz5v2-tGa|;- z6(YcdEen%LH9H{?NC;J-Ds`e-c{guc&Z1BO;F;8B7HcvQ0!5Hd*XaZ^Aj}-*>%&JR zWPLD;?)NCw+wjxXI4$-3O!xa3jsT8EC{lMqMZ#-<%@tI%4)%eR@IhFM78qn3WjG5F z3lr5kA)$T|g{3VEhci(OXRv_7JdL)Tf; zc}}^zs0QHIZ1K}_$~Som3sWqV{c(zXBI5eE$aPf`$a4VTDPFqH{q*cAL}m01?bmzm zDK)cEkvmJ_6u2i>DuBoHhWwwoR1f#o8UQUNrA-krO*NMm+a5kqhQg|u{AMD`*N-{@ z6Irlte-L42Es{>XoRhnIYA<)Y-N;80KE@!XoLL28-t8PnxmTLfa#fuA;|(a{-up=8 zgqdYRcptrwZR+mk(=@sJ*d}Id=IgrV$Rxkg+?XZ%tsncspkU7DH*&}xX^&*0>+xLV zrlD5tqvyio`pMmTh+GM1(bW7VQ7a!n&go)%CkeA`7vS}|*?aeJW~x(RmJGg5VA&WW z-y*z)ty8|Yu*sr0+-=x(#w}Rb+-;TNKEr?&P9E`{COMZ zZIps&y$;4myo`G!d7mkj%`B|BX{YQ(IM3X;mIXTz32lKN`3!>q-e``hT8c6_tFS)0 z7R?=D=CQ~oSWG&LGm)xf1X#wf!$Vm%+!-?yEz4qK^U8oJhytkdbbjN4xRg@sRF<`U z{|9fJj%yLF6n;Fe@7_5bA3-;!Cmb{v)B;sIoiqnfM977ia;f5@xevHONG1gwy|HAj z3xR=ft%9Nn1{$XmF`-B~>@hmvEP_(X**V;W$y-xazdFKP=4sn=bOQyYt+w?sI>vw~ z92f&;C<2x(e4@vC|2UOdNPBCekKP8c0xV!9VkyuW%&H0lhTD1q02@%&c?U+UD+s)w zP&CHK#MuZNt)n$8D}-WQV_gCcVJxeyOZecakPu*`Oak837_Fa9J_b=>3`|9Lb*$^O zpIM0D2t!}7w!W^+qG!AC4i1_Xb4|S=*im^>fT9%5VbQWIZEXx<7Lqbedtn)7$BCyD|QjRdQ+`JM|>&?tJ;C8B{^7zl;he~c-03@8MR7D_% z{*Q4_TY2i?9;r9U`aL{sY&i%STNDwgu!;y9S<%L(8VVqyx0Vy^bRt`($uW^|%DQqI zzd4lSTH1824rSsT546@IoU=Ddp;WR;$M#&QDvL0Qy9-lZA^FSX1yHI|ic!bLRZ4+! zN|u?a)S@a`S$f2>tT_cq@RX`BF@uU~o`=i?id^si*cXPmu}HSG%!znm7H%!u?HIl1 zah$jnVJW59Ru|J4+ikI~4M1`Ub4_GpY|T^>JAjmq<&C|ZR@%mw;vUIa+*bL*r6`gW z9LN*!bUI~6ndM2Q*ij~DnYo)3&CPjkdxRysw!HS4xc452B;)22RqK>*k)LGwa&kJL)^KC)}_ zaH9MGP&U!Mk2Edj&@(5Y+sBKzmZDnLWgTObTC|ildLT+s7EN7%YKfpys@BN@Za&Qi zE>kX|kH_`h`}aZN)_oWecvr9!P)GI)6!666ne28TpmjekXdS9KtmplnS+poxN4IfW zF$`LunkXEo(lo92ANty$Rp$e-cpqp>xM3Jg1#UPVbBe|1XOMJAS$p^p;V}#%89jue z#9a0>c2m25KSl$PKP$Rh52zMl8iwYGa0)4!;f+45AJ_HjMdpa|e-eH^bY*R>;z!wF7t`RLJlTv#NS zOjLGzop$LLV<9sqaGmO~F~;!ljH)(ZvEc-ZXrph*5ON)B3P!+&<&4ONb5O1rg{72A zaXo(9{^RVUB0$8oOv|#SMY+@x*VEKI$FqCLPm^z&RJQBN*2V8G`gMwsDZPyVI z9&$|<*(|*YcNm__?L1_+(=8*ja#j%6Xbs-Pz62sdDFuWr6E3xZ*=8|s6J{Wr!t6g% z4g$)3@`&psh0(`Wp(4gePz5~>$PuAo<`J!Jg050kMb~xBC#0>bXF38=M2syM9BC67 zeI%zOJq5WH&MS79ZKonj%Ep)|2Sv%(%I+tRAR?OPdGxUjTKq>&rGDgvkt%}aw4_tC z^`0;GJkMd*3Krx9jfPTRVV+8DL$*oQl$1>%|3B zX%ZmDY3au+41;Qz!ACvJw3{Fd3WyK|!7v;`wbXWM<}O8~h!pa02@xt<3JD<$6n;Ey zyQNYv1}7yO0R~_ghGcM4pp=vk!JLIqjI}N65)6w7 zP?;tzvrdyoC{tCXWFSTqE$$H3s%{55W(SL-E1TWE3IT%dgpW@!kII3H_R*x!BnrB+v#|u$2cRR996CBI))K5YZjWD z+HjZ&i;CuG8rKY-BV)l`y;BHR;am*0|yTe?YrnCCg^ z5~PT31?$uk}iGx%Hl1 zMH+C57HlZ;O&OOCiG-*}xNMF}SJk{lEM=WrR?>zTNtG>txR%hh-qv-Q>QqZjdy8Iw zO&>jr7jsKHcU&*whncF@QV5yRR1&k8$=YKi~x&hDW~O>m!GKgF~WT} z&t{g);B0h2w1M?&5h1uU@idpijYByc9DF*im#6mbg9i^Umu2lLaBpMp<7T;{4&I{B zAOvBp6`(TjpoMC|80Bz)O4z_Ko+=_>zI7hVF>(|p=vJl~LJ)z75A$UuQY1mLD2AbR znP&vaen+Y2o+mJG|6p!7PK&Cr3gF(GXQ7w!EfrgP92a=7)@ZhNzZ|VxOh!Gzfe6rO z27sq3wNTN4frJuNMela`$i~1l$uxnOrwSIRVk%jv+SL&VEGv3Pt#ClZua4#749OE* zJBWB!vG!;kOz0zQXql;$SXN&<0h;kqt0e5pV)vM=- z>|w2M3DAfgW+KNQ?>>l=t{+Biq9-RN31 z)#AA|CFb7yI7dzOE069E{q>)XXa%v5r%Nyi+Z>f$!9;UTZCZPXI?if52SO!s3rl94 zr$t6<-E8)417LG9le_Kv?(W3|=H*5tBB}46naz%E+agk%tYT-yC1%YKs|!1hqi-Dx zjLgV1H{k^v0IhYCM?`vN)H6AzYb%^x)#^i601ChNqArB!| z;-7Bvr_bYGzbcgYmSa*=c*f(w_xo}W43kLQw%Sp^9Ks0q>5_s3Z5uoavYHvP?+}J3 z7zhWmpEDv_R|`{aG0w=)Y|w^qj2Y#wS8)#^YR`9!Q*?s}Q@{gr`ZS3IQflEEfk^7Q zeU$zSq9>Ln5$40Qv-F0{`mbP+-attLJkE@etz%C3gaa)0dZ;kUre7B5)*ytE9@zBh zh*+t#EW~9OWw>Pq3GD4ngh|!TQ~OTaMiCH24Mvn9TGPpD92Ed1-|zAI#v+h;%PKgU^3&2gTps;$+=f{-4o?`K{qOw2S+>s?gXsYtBg zl|OAn)O%kex$q<@*WMgsm9BqmhY{)3vQ-Nv%q&`7n4&X9M4^cbOkc8*)>?#*a}uML zHY$yP*1NmUQEQL2FPdhFY^p3W&Fq@ymqW0)E@m?$=Um&cO3tX^PZj%p>vg?pYqjnd zF3x_ITB)4abIyz?8AFu`1%oVWE3b?Cj3^ZOinooGhf%?Qm1huTKwa%H3jESmnk;h- zE9<(N1vWsw2g;XZ;?nh233gVYN5Z{t)pz%;XJ!*E8=qWFmAQdy_^7H{7ei~kre`HP z(L&*u5{$T(C`aM25-PfFdw4|P?HB=)E=*vE@Q$Eu+bHSF51$_2f9AkEO*nI&r#(J5 zizne-?d>EIOwTz<7}IdhG?S)iEgxr`CnCofDB04!qugg>APQKS(puW|;{X%yJGTZR zY0`QFiEdjWxo^7f_ITi&xMs<+ZRky!f(dSsnLaTFEO8n{m?+GVj1-9ArjP{3MeDYxlDQ7|x{7NWCL(SQg1cAxU_^LWDb9*fwVsJ$ zaa~bdWm-_t64+fS+{nz5WaQf4Rr+4m0beF|(DFkP%6e*R!!wUih7efD*=K=IypGR*HEc1~PMDL5ZrXjm6)k zFk|5{&ZbI?`sAOUo<4l_HAKqB_;{S=U}>V_!_y-r_P_YRKik|7ZH$dULCTqch>Zad z8jrVE+B$bdc)#xu@$&@d`SylPsFnqndxr{%NK<5t*Do24NU(wk87R+9RFr~L#{$*5 z+F_p4%ewW% z#_(xnVy%_;8osNl>O5!3v}#rlz|9LKQcS%Isv)B4<~2@;H7O1zF3IWr>F(}T5=A1B z@jlJ2!mgB2?jkCeKdwL(D6Jn;nKtP6OL_(h?~2T%T7ySMxVA;?s4u2|LES6>invp+ za8sp=FjR$R4V@C0b6&&|T*~7j72*BpLzd~7d|LHGm!(eUSW!sfwOCzOY~94bTAwV* zY*Ywl9^LQIc3G!Q5}P=DWO`B|DvULkzC5ANO)iStY@G;0&@ds>pdfL zWhExF0N2iha=UHk7-qKoxvh3ihg6nYu%OU|(wXu4zAE+$l*n@&%;Mp5j@DYW0+}(!;wMhOKpD*Dwj|_{ z9=`3Dy%8lw#xpo-U%QLa>dm_zEh(S~<>uLvz0+f+8^K896&NCwCmhpz zW)|(O2DWwBm0qZpe-Z8(y>}5=Luyd{+hs#rh2z3G{9{Q^ksU6DRT17YYnx4l6k7*< z@gV9>V&_7! z7^9p3=W);?rby{9GowyjTS@UK5CtM$09-rA{Z>9O7kRs^_3ZCqJ|LA|$3RAN&7 z{0J1D)qA?RYI)RHnD=dar?i&p8KtJZ1Y~vY+nlu>nzN?-$c*|C)_)Zdtto++*rwH= z(ps}Q*9vZ0A$4n{QSLkZXs%m=7IRF#|WUaM8zNGyqZ%Xy)w7i;Sc3Boy=9S&_E<3IlzO*7> zD!QW2RjE~bhx)LDGvn>`K}`F;BY5k#rj12G{P^_Sc zGZCi;GP(6y736S4&U2!5B(ZcA#vDEd+(FEuc}{ppQ-tF2<~|&{;kKhtzF<_Y!OB%crklFmbE-j7wKdT|j&XVfDbbVQ z){f&K!t&E4!5kKC-*P7Ak_>HDF6ZYimb1v2o}iX{n~AesUlE;*Lou%3}F&R zWSkRCk&$D78G$@bDhzofvuNMI0#7Ev>1nq1J&`pNd(2^&<^$o3l*Z>gfB5vtA_*K0 zlCHWl$j!pM3ge15uCk&Ej`JLA7?5e^z(V~el2t?msH2d9RBeUcOB5_b%TgyIt+n3Q z?1+|fuL}39pIuFrYmQ&~rPf-B+A|k~wJLOCYFh)~;Z<^t70)LLP@>#s@1CU9cH8py zGE*XpJ|av_TiKxt?KkIC;qnr$+757!)yh-d3TxQl<`qHRE)Ec1tl6qfYqmp686R{B zx0od(gjtleP*JsvTvzO@>)EenrLNESTvZUN^qgbXp;SXHRdI7)gL;Tc>zcqhPG0F6 zb%=4z`Ri<{FJKi4UhcmImyU?4Br32c)- z8e!D`H*c+1BWz}+VPNKntj?oSxL5x|uxXJ&t1qrUmWZ(JySdve?65FXW@Lt$+f{wk z{S07Es}2SWaG2&EQ8o*5_qx?qXI+7;1qX~MwfdYhJXl#+j^m677HOrk8ndi|W(xsQ zuzO}MirH}-@h4WQ!o2nEJWhA} zN7o_BUb}C5b)zCu_V_?a(vyX?>6}grQXT1t$bQ>B@i+(f_VK4bAyEhQ`|g>quW!PV z;e?<}0iUmLvmt(Y*FU-A#t~FipWV5OPgCLW_=n$o`~7!6s%q=KZ`;$yuljZq>09q2BBBYXHUbLbecNv} zx~wr~YfYCFFzW=cIj32@R=+QxKvnxy$rTAvKF2Wg1tX&MY}D^lcC#v$-QygiskUps zSO>y81*DuG@1e`@JJ_P&MEDi^vmB`r8J^eV)+3Aj5ddztJ+3&_+E0kGs(9ga%v3ca zdEo)C^TEAf6R~VG5aBuIH4Z97DHWW`3rEO|!ZFdRr!zv7tIsIx#}dj%s!EB<>NYCu zTV#|yqO?!$HE5!uS`_%M4x++6RP9=@^ujL@k#Ge`d94qqtR%>+B*DrFEj37HMC?V< z1l8P+m{wQ!$6gqV8XH+N$BaZmwGorD)|~x)eu7LE4o|**gV1&&cwV*C$vfX60%y5ewtJ@yX@CX{%8c73PY5 zLTUYLZjz4TZb1sJ2DE%JQ-4g%6>E>RjPY z-F%+sW3ASU9sw%2@m2SbXHjSt?dlzzAS|VAFWE^wi(Bg|GUpUxDHRI*_X;dCH)|@1 zsD2MXnclblq-_IpN`8KP`PH|-{_^&Pn8RuV>Bwwfwf0Y6=+EzPMKVc+K4YkB3ymsfD|*5>q*7*8AMGUo|q-8wR$ zOilba#@m;E+YmI52O4EiOviMbBh$bPq3{8=wh_H_Y$RQo#O4^|C{&RMR5;UT_!w`X zObbv_7bs6VEds2nmCO+ZY(*Fta9i(Cp_kttevS-dA=F@Y+kgl+pL4xx?hyfD0MZ+Z z+vpZ=k5TJxf(U`gUSA^?27iImmEjI|Mt}(t=p-LHo`g5KhPU*?ryt(V$DBT=Mbh^4 zbbo#}GaC~Th1*-hSfWgvWAxsNl7NNLT*jt?ht@QID@0&KO>YXTQ-hRqV+mg=s-l&bwcZJRIP@& zbEVN;+Qo&RaIa&!wdUrTC_fXesY#u=T*rd2)|kCyV^vd*<@uGOf2hcLoJ3Sm*!N$y zdK^$)RP{|26mE`LBnVYCvlZ4LJja-Gnp^FFnK|4eqjZ%jx_X6Jb43slNLAh3rX{lY zRAuTibLQHmE{yl%?M;LWhhDqDaIX#wz}7bqMyW3QAD@R&=ZLRQQ_6c$55zQUYy9UI zfgOB}bZGr=t%bF}?-J-@L&X^9979$8;=9#E5RP}3tg=Q7s!h9S@ z>wVugBu$%R&in0_i8;=9X>*AsnAjtZ^XRR&*3L1;Ich*wLe(-1)>X1>HIW`JDk^Gb z?;ef{gsDC~k*#;tifeVLATSi|BcusowP=N~_f_Tyk(f_p_P!xe885tM$EK|u<5U4& z)g$u-Q>zEDs0NYY;Z+(FVa#c6y*CRVW<<1ax1{ulrE+0KV&D24M_AO@ckBK6zLC&OU_7IDu$SckK;k z;D*!Tplw5`r#wIe4;&K+AgK&ytpUg}&=q6E7~Hi#KS6b#10t-9V<5wh0WhZdVcfLu z9n*8#Jm>iIs`s1rokY;ve0_`82gV$q9>}0ZNT#~OxbMd zGF^iJN^PymwKb2i`QD@WinX8`LfBlQ@G)j)mfxk$A|zVtnTf=CoWxWtj7)5OXW`>K zQL^}qnwl&L4~UtxX?Y1M0jYipiA=y z{VbVE6TM=HM0ok{gbPJp#c%JeKFX$Ay$FExWmzz@%2^WO-Zx?giKoslk9D}5_)&Ufe_t(Gu_H7)ja`ExQ$LzcCrsvN7lg&4a7^`>jq$bpxpHrIF zDlV2oY6Ap;`F6nFjsv2)Z6Jx`1Q27!IOpq^yp)9?4!5lH6coci0;JE0^Q!0Ov&Hw7GwCyZz}$dFo&SlcHQ=H9fqTZwQ0_`+ENpr)<0PQ)Tw>$j}M1Iy#_s3Whk)KJnR!lLHQ z8Otfn#B5dvD5`8KSvV1yO*dCaYMxfD%or1;)LP>py2NJd zWv@Y8xlc;+F2WUnSUuJyNFe~C6+#|$f9%^H0la&XcgYCDF3L5W>^vg5FfmxV%N-CCyfCezj9e=*Gmf zxV$6BJAR;ArHrg1qJFMdMMEOegddMXn6)V~&oNX)YJkhZBAV(&C5;scIp-9Wj0_49 zR#Fxo=SWQ^%Ih~T%t1i{BBHm>QVXP#uYq|5r&sS?eM1E%B7=#{Jj$S(Y3@mBW{tau z2;p|Wy?p%Y^RLCuBhK;L-+nvJnaNpj!)cKz67zU<-t|vz{2Dk6BfwH@jP#V&!6_;+ z2D5?~ObbNu{1lIeK0oL2@M*eleBWWtEU4&N&^V8crJ@i~DXr9)DUXx8vI-zIa!mpC z4huYnSKH1Ml=iT#le8NWXr1ziXTm@EO1|>Rr`ccy>6UOrf@s@rmZ?mzhmX&G9=-1X zt-z1r0QILEq&DG*F^Pq=#W9)KZ0J*)ucvmVq_m)WuR9}$QTxrMUi(=-Ir)z6V$x6t? z7~`r7eUV0e%~7vvSNzg3Qg{`kz4tmVdT(RQ!a!AOZz9}tt$f{=AcSa~Lz>2P5eY1P zR8?$sF_=36pkxuf1i4J__fQS=lUdrP=P`)E%=PuJKumKH>Ai{S(%K}p+va8}S^=GP zE@kF%9NV@n?U`^^$U>yK$DFEKsf9J(;5Q?K_^e&XYNen6zo7&lTRI zMqEu>`9fNg`o#pAV^mI5jR(2ls+rfuJIg3m6{^`()fDjJK3tk3Wq1=)IfUp z0>afczlbZSYtv93nRkC&X7PT{^W@8XK!jrU0!fwg3TkbI5!G|d%;k2d?y^jkM7Ua| zb;%XKy^sJkkgefZEx6v5T18}A0s+9L)z7|kzx9hVVw`7vs#HFbh^p!8)~Vfmgx9_c z*ELyqQMv}S|9E#&HCHVm!)hy2{z?&%*7_Ku-p?^-EF^pB#Dtk!Z^BYw%W<5@czS;M z@byno$%&cY|M>k6pT8t!WR!z6GmqDk3EaH@$&LQ>>1ZdmK+E)^hFF^AFo0MWq1MJp zD%2E|tb%a>$3Qs0l8DxjblOU3RrTo*+HN<9Aj96yh(K=$PaEN0jCe4R3^Ts~+{-n$xJ1(hg& zLd6!)5>wIETQQy9nH0G~=1@eC<(@U{BpcOyEI2>h-% zSR$ZG_hGJPT~+6t$8jtn9MgY^55uNqMDHz;rQ#A1RarR`Kqe)YOS5lVg)~&0T&}_& zH6<+sJ_(hE2bm(ed^*BzQDaIstHRtP0J@CUT(Ywwc9;4>n%3mh<~)w$w%_WQ7vVXL zQN5UmNSPX4KS6K z+-emP5n60optqJDr3Jir_i{apG2NJ{mVv$B=S=CsxBlIi*YAIP6KQ>G$LleVDJd5i_>LbDMtVd{d65 zol?e|BV_CQEZ%S==9ssL|LWuIzyC}BtNpys;ECgb25`bGj}zml3na}k!COZYCc$9{ zPj`q`wjc{j7h=IVY%U)Fis>fIP4gTu=i3bgJ5LO&bx79qkICkwr#p!FzSm2xw+-hB zH)J3j?0lF0iyJn#m^OXe_tv-H{qBdq`@3JWGDv)8@3-6bB%&-ri&I;;Phw_ms@jk_ zhp9--bLvcYcVVfseBbthUuKau%$LCM@&gw}nuv0R(3B{=!g5donHtsB1CJ{c+vZ$Z zbz@fLbdF(j)&VCfMUhffX^n~#mAUU*paMOqPSS!gtLk~4%v7yXNss2V)-=LJc;TCf zYtVFoD(b4kl2e*r5|yl*wbstZ0JwOLR78~ zsb;JC%X5sn`s&LY=eSO!Kjy-y6TgB@O1&c@nW4Ot44Khdn{(vC%xB%q$eeT9oT5qu zCMH?huO(?%Oyjr?UxZhRNTHdsm3k)uRH(SsSL1Gd>qIn;Gc%c1UiWH8q*xt9LjTCv zu|!988;dN#c#$@$*eNwS|)-3{*f{ijbqe)$}hc9^pCeUqk1Jdddiy^Fv2 z+=t1Wc7z3zE2$K!tegZ8Vhn1^O~ZofgYDwss9`P<_r}^FnwfT-HYS47yuG}Du{}ML zYJx-s%QYQfh<3T{Z(qKE9F0MU*8>S~f&!iZgP1$W`~8u<&wFIxP?UH<$j+5p$lOvPS+CH5P%dBhwi%+}r;j7(z2oIvLE@Ic?f6U6Pl zVGciME=LYQrC5sb_K0!n*2`01W0DYwAW5I@cswv2ED(nB^_2{8!pAY*&NjARKI5Lr zalAd|m_Fmzzy9rSzy01kS%s6k?)T@HK!U);+M9kr={X|^WOuVa>?jR-ZSTPTch*RAQg{qj8VIBW+GYISydfl+O*rggQ&z& zWfwQ|Qgfi>eA8aPyjECbMCdBsmwH}A#uzr|e%tGf#zk$aFS3F?xb7;hY=z*26 zxvA(5BF{g*!>Hz@l-f0uDT$}K)z7K!WRKOZ)(>?-X^2=VXQFm!m0*!&NJgR_!SfvF zd5Dz1KPu_kYSxAdxTaj@c-X904&hm|q>^T3EJAh)Sv( zg=zvsrAezAN1HNB0W)-E_GM-=am{Kf8yr{$luD#sfcp$2O1@nyliGbnbvN#1Osqwd zO|OPMVhPX3IqC;S%;TKp)UPtl-7C(Jh>@6c0tL(BccV!H%aW6Ev3un>&RS$u+GSkO z3l@2S@grpH@Eu}6KBSkx7TmK|6OEi@7#2Z=_8aSEz|t`^spH1uRiFXzxXZr zMxe-PaKH(z>1~HdJ&3iF(5IW5!K|nXV1i19+Z^eW0Nr<1@pMo4+XE~SIcd~C_}MKU#Zgr^}K#9C0GeXAHKFhg680|IzZ7ryUl&i4%}NPtQ9PRjhW zp%}E`VUuq+B8D>d4PdR1KCSB^V>%>pykQs!2}w`d6dST*e8}5B`G}w1OhKGa&pU`L z^S8hI-Q##{_gkIt_ouJ!FCSUtIERNPf|&ZY%`v+6%)C^a@D=tz1@d$E<8g?{*0<6S z)_YW^4}ftAUWp4hCN0#zODSaTwEmpPjN)+oKBI!D>d31bK*hmkqFCCfz9Q1hn9y4Hi1R!PK$00$X=Ye| z*YRk_aG5q%fby0Fsz%#al095w3{qjb1JdEm>V;4acgF0gwQT6kyb* zE!{Jcncn5g5wZ1-1u}+FEPv zJjWGPmCRJOQf&>OF^V~?TC*Ce+@u=9TtC>zx@-$N0ze8_>zPQcfTJX4DuF>g*#+t2 zW#V2@MYUI7*Z9?c^wyV+b4h_K&lOU2f^hZhxBX^r1S%43QQR4|^Yf*2DwdRL&1y?f zs4T_(t)^0?)q7YG?aWM!X=dg~6i@^x+<#_7iOIF%L)@8bk3wcv41zglG4yM1Ukx}j z_pLoWzlgRZ64B}Y_rLk|IfjR4L*a8d&**>o6eEw11Z z$C+y^OUTr|aiytGC$RQTB)kP;3mvyis^BVi~uuB%b6f`8`v9!a|EWd zDq4d`!UGO7j}cp(ZDQvMpW!t_5dvk-$MoT5>C?kdItwA%8tWd}eWndRP{jeE^(OZl zk{~k1BPcKZxR19lc^=RTcWfwb08{$N@Hqxl(G{Sz+aPjtZXG_6fM~p(XbQ@4OqicP zeztM&CfFK8K#AhSGzRDKc%9Gr;eY)X^4Cvs4`*iqam~K*yYIgDO!qj)?ECHI<4>5n z&$!(-X0|!1;7CGJHr3KtSF;YFX`_lAT{hCCI0BK)Nua9M-`fjO5t3T539oRsS`+rx z5?Pr2l|{w^P*cqeVXfo4ILZ~j77@%+-YI6uC@BXEi_cm3iaJB;6D}Pfat(~@#jkw^ zWi3lwwUyG6m}FJ)0p#s=dz?o(Vc+}m2>(ZHo^0Bfg@}=~k~cvm7p@(0y;-eT59Ymf z29+IEnCF~?Vl-!=CxRu^>59rmKM{DS(vHT>1Jkg?)zTPUjpv7Z5t8Q<5-0}UoOld z84%GNqY_t&+ZqCrFN*gAl$cY12R1J{RUvU;Ss%eETZ4Ri(c;G zMSP2Idv8wj3v8?EB8l$9brzHhp`% zU41%A6gb^m-vFJ{NChmv{`PlsMr*B-Tz&ZC?a;oHw%hZwKt$;I&p+;e^;5J2GnzmW zN|})bO#(8Ln|Nl;TYx_Pyvfgw=b^{VQK3~qex0ShiqGX zdEj&mhX-O}4hT~hA%YKj3i*rs{lEG-ZiFzd-AP7F=SWeIij7l+`+h?pJk!Z%k_DLh zhn*T_B&NX}O4Z`z+tK@t`;K$kIY896om!)9O9RX^(vJy%Qqr<*`+PewVjWqc0L$%` z?f{W+ybW$0=Y*r*c6e;}XWec--QQ|+P5^DsH*i2wzS;E8pYii8KWb_)5iQ%`bJJ;zxFk-U0+ z5vhO3yr6C4JbQ1Fbt8o>TSeb$~*9lcAKYh*Y zmTIC5nFK<t%tGs;O`R+7c!Sv`J>@bf$i z^Zw<_7c=YHYs1!hFQVDBYF9iwRknS~GgISA1R(8LlQ+V27R`voVkClD+jbDcoJv}OOfxY1 z+X0bkI&qA&gecWu%_8TjNWmEMVKVs7zm{LV z;GwGKvu|6e{+qT0ie&@<1!52eXpE7Ot*K`a!HQ2Vf_G5cQl0j)Ta7X5n{~309*;0A<=$m2ruNB7E7!B5M9$$Pglm3}14X!U0mHw3ZO-kGnAH+RXO= zbigB2wP`D$H#1GM_W{V|KF%@#% z7oUi>Z8Kj;*V2p@A|J>E3hfe?z7H$R9pTGt$Sj4SozrM#i7)_L^E&|e{a7nv*i2Ai zWR?U9REEK8D^=P#nE5$IWeY~coTCP18L{n~XsZFMO$+zhUzxkRZ(A?peqHsgwc~iW z&6@jFy9UrSn>NQBMN+93ukc~l*c3#xvWrXgGpE_Cl};td-fp+jE>D|8B)nFF5n0!i z_O{=i_WNB#L^*u^`q#hu{NtB&+@5Z-X-aj~8csF>!kM1U<(E$%|GU4CC-L#%y@6?c zg42m1`(|%%#DumXDa_~FYea?{BIao^r)(RT(}JZz#NH0L2U2c(dwvGfQo-GCD8b*H z0Lk7#3}H0E#-Rb5cs#)FFN9y*{3)vgIP#KcXf*3 znK0Uzy28MH11VZ#W;7nJpHRo#b^`(wc09JNBOMIhG{by)+d6MMGPpO0#5oE+4`~F2 zD1s1ynEv_-32F!;2SAKqI5H9x)El@V5FRHb|MUaClGx1CFfGOu6>fdFe|mlU)o*?S zph>go7Tj+4F${^;H8Q99G-Kw+@u=btz-`}c&gDtQnl`V0o2XqNvn;y)(i9bo^NJCR zAYj|~x3{-ik{z|14OmvQMjDxPvS=!2KtrbFKmTS1)Su>CD{dOxaSn7&a(!q8m8fo`W@~d!FAyqIq}SZL?((`6>kKSrgu97qS#ztf&RA%SKl;L;i}q2= zpKaSB-OPbxE`rL^Zbt;IT8b)|XpWheKbcpK6(VAcS?jWzmK5){SW?U^tV=Dh{B)X8 z(aEbrsXnV9^))lCUx3U~4_$YX)N@%T24*fb0$rTJT3?r;Vg2PL;ax~CTI+MzEG0>* zs;Y!}Me7t^xTcd!y?}*wsY1pV>k##WdH1gXxK=w$&1Gigiki~^iokiEvN9$s@`WR^ zHXOATT>c{@GdI;5@s;jdRJY!X-3ufyxCqy_ZT+dh<9O60y2#Zv8`a*o?M|%W@Zn!R ze;((9gxxJYh^TK$3?Q{hT2O|chil|dHu~9Br8VgScC(QLfa}$A3l@Q}Kkv9{+CVroL5}l?FpNVwCk2S& zd7X z2d*?Vvy7}MhRBLUUriG)=tHCZc`KA1+42i{*b+6;BHlXF(tKe%8h1G?J>$>VC zF3O~GxuW#TSWbxg?&g?ORc|#Bo~3U@pn8a!k<>etkqI#+jVcN~$j^bR{xk;XsOdUx_8}^*!E`w$@Jg!tPhZZYief zLQ>VLAnNvWUnt7@x4qgof|)Z_(Y=u1MQ)KR+Hhr5lpHN06T~Dh5$DwPz^K-fLJZ?`=?z?kvV4+#h!4vxXr_BOqs|z&D}GL?p5I;-deBi zB_Wwh|8D!fx3*0)Vxq)2-fSEYxS0?z(;miPZB2X6Bxe$4@_~)mC8!HjvK8Bqz*3+u(%58*fcJi2d`~+7q0> zjk&=H2M`MIk>HiO zPYrPSvgU#hGRf_kbVFArfu*1$ZZS5X_w7#9{mZFf)lS66GC*W>#ywMvKmrnN0DDADWB%c{-+p?$O6M`d3?IJw z=H=tZZQpup=i>yh?|a=Jy|pn0vI5FRiA0E3O%oCOzL%!1BoD>DW#LRzm`&}#)}eW& z5}a3_wrJ(YI9(gQQl(dI)>^BX&&9*gB!H+jEeR7X5c)bv%09g)qQZ$-eUC`*4WQZ? z-1b{6xsiCp9D`ZPpC}i;2v{zFX?DBa$|PH3@T#v{(+V6DmGVEah?}?GYGqyf`DwHE zsYQo$4`Qm5Dk9yBz|q%tL5wA8r)}F3DXhelnc7ygLHz`$6_5#Q^i5$7)fBSo zpwc@tvo_5@wI+41VCfVVDN|KS2UUL%62gLuvUr`~byY0kKq-#xi1YyFWi`>qJaK=Nw;N4+Lyj zOs^coaF1a*ypdjLG$tW1O%xf2uY+Ww;f2IBPqiZ0ZJ<4|2(}2?)>z`EZiHI z)7>8rgo6kKRt8gg;xYa3Ov2W&-9PQlO3HcXptW^coXlSfYsf{c``5VUhiFmYna$us}iPqplg9cxiCsFvs#fcOSOCJ zFeMV^@DP=9_SHpIZA6W#YTQ)!L#a{g;=D)$ZH>8dfdLlM5;qV{kZ(+^>NRyhk z*1k?#+n=6^#XY3y+hhFh`-e?>dVWskiPZZJCLn698WwhVL>O#55q;dy07($i0v3n} zPidXDPDK9tMk3q5e23iF4#*2rIT$xhIAlBn{{KoRN+Wy>Adj z>%8x^yQe7dH_uF1u#yYiRAyA!(BcnctOL9V0bXKKUzecq! zm$gS`R`7fU(~fi0QX%sFXsU&=uU>)a%AlhN5BF*2movlMUcbDyrrMgD0VK4xL?!F5 zYw{h9Rh4lat>-xkIb6r1M;*(kRZvaF3O+REAJ3AipN*O4HO_k-h5e_yO~fuGBRNglOBQ zNj-_&q$wzU95x=5;dA;i=i~IS)hnrwM~*pv$$6Ng#{%A&b@l z3oFBonfKl;oPfUd+VJOv#rxwfjA|4L4s#p_5!HBCwN0CIPF|+Utg(3cy4R-2CS9j# zy@X}WThmM;AR~f6vCdEu=H9nD6^SV$%x#>NU@GQ*jEb>S5ixmY#dFpM3RukK%sj^lpnfpre_yhY>sqeIt#k{K zg(Pbr%oX!e{)y7qX=^=!X=9GrTVHl@U(kY5h?kHlR#v4~xL&Ce$2qhls=UDOba@O_ zG$O_v`?j%)M;ynIi-U6QoQP&MysD~=nY*^OLZza2ZB6=q2XR_tIBUL*W1MEw0p#Pz z^AMuG?V`;+q;Kuk$2iRndM5n*p3f?`29h8_R~C&kaLzb}?mMOfL?d8fUmiGoe|qtU z;mq6qOxZD*u)zh!MMUw>$98`KD_GeW)F~O$VWho7019Xpz@q@*t%<#!@jBvds5AoG z=P!kx7ViESc^nusr;*C`{PLL2NpgClWFR7qaCY~fY5c{L|CHlC(WZ#Q1|5gk6eL`5 zs`$>iMRLxNrt*9P!^W9x**tU{k5AYMjcpoOns&j4&uDRjHS)$M-`fquF$@4a(lTeF z-?49qghv=`I=7Ddj$OF50A$~!-@#X}`k3s+FH(*6mVya5uYRJ&B0i+`Oy|TQNl}L0s582?<-0Po zZQBYkG5@j4A&WJShei?oXL+Q0YpQx22N72>>R~T0FT|@yVP;i5 z&rz$>!g$xAR|Az&0F}dhF}naP0|Zf0@2%F$@2Ld)wiOelZknjhEskixAPYB{D$~ejJakt-K(mY`7$#|NsB`gD&tn zT?j}_o7=wC@cr%a=&cc$c;zG2_SJmpd`3>QdE0M59kYpxr=1zC>71iL`8C}$Gmk}u zDoI1Bm1>!zs*zb-_lRH-o3n_@>s!i5aNV)hg?YG&67#fLq1W@V@_vc&^z;N^oTK`TM zkf?BQ8L;cdm225>(Ip}J?oFlIY}b>~dvmjxQIyU1tgy}X*0>c9%aS>B(l@Lht> z38IqyiAXXA22rx{f>tyEz}X_M|924uh- z;Y&3bfgmLXNh%-bK}_4zi@TVyGRuag$VATJvg`J8XY)8u(H03(p5dh8A5{KlKb61u zDc&4o;JY^r_irEZ7IdZ{;ecBqYQRh$I0FfGc)Gr9G-AI$!z0JgrclM}2{ZH^%*%2J zru#kTlzp&I@aJXzzy*jcA726#tGuo=M4Mz}+gjZ{b%tc* z@p!b}GAbf>_TDQMs%}tPrCzT)<2a9+vb0t~>jk3M`XU>(vKh`fiOHskh%&o-YZ@6U z>ahQe3FAL^VKB2W1qBFm7yzOy4>Mf}4L+}f5?ooq8PWSzW%d%&IA^KC zJuXCG?X;VM*v&wwFo4z@aviTkm~%#k)-FhRMpVYVnO~flymSi}^W&=5Jlx#5k}6Qj z)f8a@$ED|`wYG|?Zqk=+umZg5+hH!TgqAqCw^rS#Ro-W%y0BAW2oT z$s)S#*tYTZMsVI+BDE_bGue(ojdHu6Pu)mjQ*vxfd%hSs|GlTBWcRSCUHcoO%u9vhm4a0G~Y-T?I8ihIUPX5M;p_pm6@Z8ECpuDq}J`r2$FRyt`h6jtrbc-OX8 zIb6;v5w>a5CNo#DU;B#My#Z*d#H2)S)fS|xth|{DK`3i&I6-QiNyKvu7LgSckpNU> znrB2M)+8k|=gi8ZBTla3tTw62#anFJ#vCo1D3j83+xOisC0K0*%v?2kZ%iDBxCZi7 zrPTzaZi^;dKoD98+C;)5a*i?yWrPp~14$XEbf)@KBFg2q2K8}?#|YGW7m+c>oL0N> ztmQ4D5N^c8ByQ0~WZUMPnYh{sGBaY-QudF&FzT;}XsvULQMUMqIcIHXMfuXUR{E*= z6*kAhl_7)Q+xfyR0o2wj%xa_S9ucFkfCcAa=KAbvk-iZ2SjLO0YYOzZe5!<^XVTJQ zM_vn@+E&%Wz2^MHBJJ^bYr4>qR2l2JC^Tj4s2;Cw8i2y`GEA%lRwf>HmcAQTM9lA< z@FlE{)TT&V>aolv?y9WvpbFATWOx?tw8mj|J8DyA_RGrT9&S!dnaIovi)E3FFb`F} z3W^{iP%?3VY0=kBRm`F?{>)|uq>?WyLI*JSFgFD2-nadYIMXfT$1h(V=lRvkj)~*# zkk+@`2Bzc7!9snz)%InM(f8Z_;f9ZA?q6_5n6o8vQhJ2mZaK=B@vd#+@%90akg=sFmJaTcOectzOYh5WtkcgT8hrjvzU;XO02^1TqZ?~WR^k+Vu({9`L`24xw zZ%pDo&f{Q}ZQmpOIF1S*onsOcfr_P?i8*HZMt%CK;)zvP>?i;;S5<9N)A?zo;nDJ! zRa;-M>a}mHW2rXS?xZ5Dm2_04_u6iHET@GC7$B79we=QtdT>-pMwj=toWGe=6R;8% zIv|X`ZMEVAKr1PTRJb$%Bdn_uC}OM~EhEG0Y$+0Uwf?PXogijjx{@M3Q5}+%${|X? zI46K@-^@HbMAu%Y^gz&>-9_f2a)C)i#vDZ;u<5O7Ui;yq$_qFzQX&&)ATwBdMieb_ zL4qTNp%?Ophy*|H$gQYH}LJV*VWnOWeFLPS)>UDE?3nHK^` zGt)T4-=~eMHM#E8j2t#$;_?b(jMM=D`v8Y9LJ$5+rGa(-kLV8+e@T?9}&^E zZM)w~Fr&&dXW57{LvCI7eV&uS+tUpQH|yIC8H5C6PS@w1pLZN7vOze{842F*aE1pg zNR$W&MI_7+1TY4}m?DA3;GBsm#0pMI;JZ)Q7~_ExKuT>a6rc0xe|A5gxBinmf7ob; zb8=^Sk-!m12IUwwt?3S@3=(Z%a-Z&&A<~2*{P7@W-rI4GaBRJw=YxB1)EmqA?sK0f z=)`t|_Dvf0KD%T$7oIPm4~>4&>93v}{c;~@zxvc(Pyhb&>u*2x&#$lFetxDK8A~># zpmofI2tsH8OxU|_8y*G=D1jKAAPGy5(WVf|@R8^C@&R2UCnbR-e9BF@%lVkTwI3gE z4>L=6=Kl0ddRNi=www9u<89kFn>KT_rrUly$LZ#o@$~dG&Ozl^sz(k{V-29Tj1kBt zI?a5}cYV|nvs6X}l0_M5(`&Ra=j>ZAo7hrFMl{vpIJ}##%_cFc$a#+ab}LwQ6?wHp z^b7FJ!Ue^%u--e6=Q%itE`6==ivBL8762r9ENeS$xCCrCRzYQb<9yA93CO%0)_^%R@n}H>}wz7HHPO%vK~>`Pi9|%fC`T!O~DMOCsF;IF1tD zonr{Cu`&tGIZ%E^?%d+vJQ@bZCgw}2aCN}j^; z%a`FV96#+2d9$w`?%#d(fA}=N`%Ir7WRLEOQ*jE2L5jBt?Fd5OfB*rKejeO5>J0=; z!-n>C!<{2N!&MuaG=sr0bH8oA-yY+HGP5KE(!TlW&sExSoJ6#3U5SbFe7r#=sUlj9 zg&&Vc)BgW8AdTg#K*gP2^w#SX`~6W~4)BV$^sJSWicRz4<%z7C4yaqCZN0>%EL7@z zUv62P$07-uStT8;l5QH8v7p|uz&q`=bWpXj7FF{gq(_KwUQ+lu$MUEa#8B1A&8wo7 z`W!MdBS^R`x5DD#5dm8faCLFoG+7MxRF#?)H4T3o}IA3|Q92^(mIe z%bY>Q%PKbpQC$b`VR=|Dh_V~7D$0CUa<<;)7_~dS-EPw?%$RwO*?X(^6c^G$MdG@@ z>!Sl@DRGLHZ7Zyy?C5{!TKLcHFvy10r!OLNT9IC=L94&lJS4&jGbtit&dktO6}>aj zv>^AIVzElNS8(3r?a{irN7KcXN-9AZE%HaHRI`$*P}BTU&=y~|9@ck1T4X5cm@CAJ zn8utG3mr3kGBGnn;GKW4q<9eoDur^`?7bBX5-M{T%M#?R{S_sMT5ly}TF&!-M9j~~ z8M9i1xP0uyJjYCAK|Y9q$QYxyMxa1OL}Zk=s1V3kyORYX77=qRfnaZ~+)L)m zo9b7p7cX^r67l2lwr_jgxW$JkEJVrJl{7pnk2dD)P514owNC7A_QMaKKYx1s;;W57 z^O&j-qNXj(!kjnt2)J9NRxo*jzS`{9pLBi!Q*EdrggL+j;q(FQKmxw}4w|$n;66rD z>Pt(W)V8>Nh+jOvDYmaaoK54l8%y88NrJpF;~cw;oR2(?FdsByON)4Ze(Cooj04E= z2x95ay8}(P93Jj0s>&cO%9%ah`hACpy}p|B{b`5i9ND%l=FE-q`J*H-9B12JdK`x1 z9KZWfeq{df4I=hs5b1t@!FGqX?CLk3E#fCFAoge9r2UkF^~!b2v;yOm&;G<%uPoirG|cs&by= zGG|2V?L5xbwD&&dTmjAH7G-APY2KRF=YQL_^Bm(mMWqh0i`yMUbdIz4R!J6hpb@d# zA3u_+LSDH3d*@}=$FwP^O?6FA3Iip~Ssyn5VKFx#rEP@>kGgLOGhMDOl}T86oTG?L z^^;K5^2gVeyMk1ZnYhY?<$^9%S?Pkx&tbJ1sVfwq1h4XcZOd!em5bPw$V+VnlnsJZ zapji3^Q^){RLjR*`?pNu<)=cqRcpIYm)zs=D3ah9BO;IUEZ0b`o5|?P{sYL(>fFzw zC1!bW*xfx%Neie@AgtDVMxMt*TU#U<;fQD|ATD=qpz;A_E&K_+ZN>U$S_RjdV~&DZ zE_REJ5oV&TZ+jAIll0r~e*De1Km4Z@YnwAziTg$#=kdtMwl`5t7W(V2 zus8qSBP@n*!k#ov&akGE?SqMyU#LCZOfdxe{l;A*;3~ei;8fvg`+Om784)_BHr6@w z@j2#!$9Vhl#UHjkJ@=<)+;$sA-1gg^!}!aDO)wb~WCPQJ0fmzaqXppU9z$C90-=bt|JfA;hF2KoMte)B1Q_sKs$=67G(M9+@s=94Lz z$mWqxppT?Kf5|`jKrMsH>I93_rm5VsYio~b-~aH#IZlCa@B7o!^T!t!J&v<&(xe}c zH>&M%L?Bz!+Mpt{NOQ~ta72bXE8lLn$8m6Som{v~5_1|cRCK@X=W!JLZP_x)DK!g14)^Yo+Na;?PJVvM=sb?rnu?a;CX!WjjIlnsAk;BFA|&Z6KWIxa~I(&hxC3w`r>yfg?TqIF4=W8E|(cLT2w95zaY!Yo+eu z62Zx$OJ-)d{OX!%O#wd7lR24~7_F&$%u+Eimt3p_qjS!(2t~vgv$kZ#+-*(kDj8!` z#1$@zNx==hGA)=cU>VnrdIjx9)Za6+bf}d)ydGI#nRGJUR=nl1_J}ByrJ}b{(En1l zt$2Fo1g1@8(Usj8B0|iaIWxx?1gJKEs>f`-H&wf=t_8yZyym$~OiFW%Liv_-{c)VP zeJ_5_oU=^&*Sg#K*2A%7Ll^dAQ6wZ@K8obp5xdP zL7<=P@{_N_Xe3zsDS|}W6m4@%>WvhS$3eQCl+YxhQI@78QMiK#_%&K^`*v_R$nfch z@BjU;nq+_J-ud>;NBQuzf3UpY@b%XiDG!y`pkD#6^Z47pbB_MkKj)v_`>jJfk7GOr ziBu=SNQaWAC1mRw;&XCqR+SBf^bi6x1ayxw;%q=e|P(z{{{Z?E4o>}+~z#A z5qeKBLvjq(w!KXxef?)Y!#Vx?&p0Pf%-=fD050Kd|m$2d!)zik@`Z*Q;54|YjuX+_U^=MG@nESON8Q3xcm z?gJZZFoosYz;T?STrBNY?t(EyW!v|RIM2~r>#dv5IbB6rI5PHquQ<5Ynn&1SQg4bU z3ujd6h4}+qN-B$!bIe^vA2DnAi5f%uAS5@*bP3&kB#*?UvVZ$t#{WwW-aSSE2@skXi4Y zh^9@r1JK_OB}u#5nAfer=Qw#uB!o~UaPHd%qB-Z*_rg*Y?ZnMgI;#{Fptm;7G8tD! zH!@q-QZ3b!T3W!850)RYB3D~$1eAELRBn}uPDCo|5f%Mi;srO$i=X)Jcwev$k)lf_ zvbBC3rz$h^9HVbNJWxr6O#vLo(R*vERjtf1K-hZs@N%`LXy|d}1FjND z#mp+Kn~21hHlLF<8>8%yjQbk28*?TTrXr?q(Z3($QzpzRY3*+;bAAj@hugCE- z1s`u`@4ZkH3E1=)lbKkwZJmNGzjs-EJSg`H8&jQ=@;}@XMdur_V&8+bu@;r@?O~zx#Cj z+uxjj|J#4~kAHXjvv2Kzv+MV)7yXZ*K)t*hb`|M3{ndU_<@a(MFV`2Z$82q5$!Pm zdK!i=6G!6lCT8c4pXJjz?3_2q$D3^(U*GZ4=$j8ef#m#+u#5Cx25?G66N;%^0Gf~we%H%d*mhTt`#5>ky*w!3d&1UvA~z% zOl;;EQLkQWnu#$+W>KiU46_kla{vIDP~qBbjN#YFid3b@XL98!tw&BoglA--JF1NU zp>LfCz3H5GE!Cx(>Ek@MZ4>FmWm?58QD*M@Mxf(7kjbJ~By*OU%KRdJM{L`Ej+05s zCB{@s;Mn?B>F~O1bOK!rGKcBI5CQE6#yii8`P)?{honi10<*&v?(|Ko)~_ z5v3xt)nQ$)US{pR%ka^+PDEyNj?tS|0$0@qHN0Am3PkTMGRGV>L@K$PxdGI-ejFz; zRRYyoNfk3OR(A1u46e*x^Sm0SIvOIw-Red(GZD1b&hsojm`BXx(fbCbdeFCho9CJ4 zed~R@)f_L(zyJ2TZ-4y{O*=&bSwdnojmN1XxGB{qGt-gnX|H6xx; z`~C|&MRcBr?0ZtAo%8hbIPM>AEc*EI)g4byPvLfd`FK8{&o2{=pZn9FKg%z^!D({u zI9}V!4Lr|JzvI5qUM^-v0iJ|IMrXr{DB{b#MQ}-)!G} zb^FU-ZvXV>{CtP9JniU&t`il$9jrl`$e`yArZgoyfg0W(IM40jK=RwC9xjbJMtt|h z39;>d)BbcH&n%5elti*cx@DX>y`sq7W(H^z5c;N>9+}ha`yYO=(^UI@-|tUP%z7R} zw2KgMag(UfmdZ>;zi{{JmAUa4Q&=Lyr)v`yp6AHSlBGmMxNB1-jYu=Aepg#7M%gN^ zr?$&eM2s~T9Y!~ifDwlrfy*o#E_!VL}bMKja9}hZ3|x^P1Dmn zV$A)vwbtXELnY!7{60a79Oo$_!3*)Q@I|$!T-OH7*4SX*_8NDC&{|(9t;~6)KY)md z_HBzyq0){zvlRL;Gp=p`@`_TKipvm zzpD{gC<8tX7welq%R^wnmF&2DXG;o}NV#aq=UIjWR6WvrukoQxE2IYj096~C8N#i# zR`jQ7whnh+Xxy?6WLY|xOQQ|p@s817~datD|k3}fwM-?#t%pa125{b#@XKmW`B@PGS%jlcVckKdj8 z4?igJcmLvFwy$>Vef#>u?dRV-|MKVb@mcSkp6~c@Pk1tAW3Z!XQif0FAup6Kos39D z^NCnNER+~$&XGh!Cv{=ac|J6|LXx5hAd+US?6u+$At8TKQbju)p zuB!1vwM3#)*q$t}<+-co$K07fR6m>RaAqE3I=QOWDO9~e zL5Pbh%)(ggqKXZj?`w}r_3+RThG_kBCv>P+XW%S)tN5Tii$B0R=qf~tbx!tF1+99pweuVz%*w@wAR^HgK-+d< zok(Fmzns7Q?f2XpiBGo(ViuC5jN|Rm_crDf(cU|8!^8078)B1}KJOd7^dz#^NBhMG z93;%JiQ5eX4u=S5Km-=xR$L-xMp)XH<8iQV+l!3&GCm*N#YOjzcM7%d-r5Pg+OPhP z|HJw3zl$HvJe^w8_JmHiTl@6(!#uW+=iBb^BQyGVOzx|ONJhYg6`BcZ`;8o1>wZ2Y z9hP%?+XS4TGd{e?{o_ym5C7Yj|K0!MhkyC+-u|b*`Q5+x*YWLJe;xAW^S-tD_rLq{ zFaQ1bANq9WZPVwMkAL-x_SN(4Prkv|AMmu}8k)!O6V!F!xH16G}=D|M>dluv3(gJkJo>`nK=4-5oK_rj;GK zU>jLanyR~-kBZ=~a-?LR$tnwEV*YLZOmMvBOqIEbC{W_NNa6g8sAdG*IcM@Nln{1MwSVY zc#J`EIRUwpCMdqsN>wn~0vnp-AX({m0X zzSR6{cwO7_rI5XJiAArd%hjfr0GCzguv+N8ui1fQrq;UI%v?lp)JY}Fw^$<|U$N~F zX7Gv%R~7P=L%QwT7$ZHkYe_?wWWPcsGFjw2&(@THus{C7NM8&nQ7t}e0=gnomL4r4 zhy=8tFRgbogD-1yb%Lr22a*76ThD|F&hsoOLf_hX)T5?Mobr2}@))%emua(pF|!bX zDQkG;w1$|q5An=W6PK%~XjFVb`AdmgquZi!0a>q2eVf%7tqSAH=DWsmd<9qnSam@? z(LoUz#QYvbUQ!BCy(*(DImb#8wx};}-TW%^T+oj4a+iR5oI^zVw%+8`RS=LU=A>QG zC>0!LbL`t5lmKsgJCC!evP!AQ=A4;XYm6_iuT7OJny_YRv1ninFjMPI+g3k>s7}5! z3A1Dxh>3dxlHIdaP)wt)6WM3r$Mf;8{?2~;_VlNJ-u~;qw&$2Tk&^Qa1q&wI^pg|F z;A{{|BbyH8wyC@O;o2LKr0&`8XcQTJe^R0tQ+`Z5zV!d}{lED?{g3^(U;NuIZ@>NY zbpLRkkN9xIjqq{*#XtM=pM7`8sd3+*|Ku0^bbtDjuWvv7hHhJX?zrD&@6r{XNQa<1 zVH$=5j9{eW^*eCcY^-Wlz2j@$FbjX+=~%kb%B(5G86{pMG{{q7%rNQ-t8 z?)R6EU-xaR&c5nucLx)*fFhG>*!utB>`$I;OS1D$Y<2Fw_c{08_g?f7nF%D21W_n9 zMwXS)Orx5}sJUh`{d1aVsDVslO=OytM3#xg1|*V5AQRa{|88^6cK6k2u>9P>pb}=u z7^G!Hym;@PX1lNE`+lEgSORkZgeoCf*sH+wbuC9s7M6<>%K|H0Ro6}~4Hl&=-BHgO z6egn~SAf~|mLhrXXOfyngr=G@wtefpCr2(H*fdz=RympHkTa#xg$0n3dzd2l*~e?( zQW41~MOAY;6u6Rdz?Z$umt~r{=9I?rBvzexJM>w^-IyrFuj!S|@o%b(AaWj%2R943 zxl^i}7)y}=KwRLa<;3!ch~8%@oPp>0XPFx~NMW6tYMok}&P>QN z3^_?(TZ*G=b&p!xoFg;{DZmLCh%=vOwI=R!%+^{FIYwV!7Xa0D(Y>k;%#B5Ix*8sV zE-V_Fn`*o@Uw-Qq#+V{NM1^?Fk*OfLX~?aVxg$b?>~oJN!bQrQYM^PT>3sk|A`z1- zMNEtW5o2h26aez0N{A{%z!EJGBjFsw!+AjiU8JT47jJ%}ehd~)DO4Xl!8>!#WJ6|y zOiZzWR7-O;dMDwPXA-c4v)PK@I@3}F36G=adLIErq||~)*XtE-D?xKp)qUSgjhWOu zeV*6rH46|z>@SA{h!m;ic!}OeJ=b~?40AP8D?|=Qv zm%sY*{FlF$AAPd_^b2^{qY*cO2yP6+TqjilW)DU4A{Cl|P5}fIaDnT!5P>Q@+os(w z2JfHcxqtUx{_d;)_zQlTab+?b{Xnp9`*-Ibz5Do|{n)DHA0 z1<-*-KmrueoB%_+&Iz@#k!+iQy1DItK3&OHX2s|BeS8^vT1iFQ{z1)5F<3IZh zf?M*`^|Kmb2~hy&-YikbRUoSyO$C6bs?_B0ovWhr=3rG zIknUIG)&93nWI~fG@_V#+*SDI@$0@b-`zjF+wc-_z`k+f86grL#+S>{nxNVQdU<(4 zKyVy$R*48|+YXV8GUOr{(0i|~g@fr#%T5-jqjwf*+jbnszHO<|%*!DCRjIMjsi`SX zsk*7PEmM$D3Al^8 z6waT)Y)!LLI-II#RRdT;SVTOIUTev5nVBv9jtJcHdvbV~^Z!z0v6ljKW;o}h-_JJx zhb|06G<5_pRWAIx?}c!)l-$XLlvXQ1t{F^C)9pFuB%~q*0P+&c_v`2#mI&1mK<8|& z(V}`l1f+c-Eh-twmn$PC@|^z937Fy4jDUGDCikX@#O?k~=vJ2H!X@h_VF?d22bf4$ zsF->R8*&zuFF9kwxu9Frmf-$n$`1enBuRQM| zZ#kacwk;L6IU!75bZgtxnJTQbf|VkKoD(=&z<%&Bcek)orLe?MPFq!M;(z$p{}cT5WBBL< zcSS`@JG;9Z7(i$(Tg?*Ko46{QlfgpKArbGUUHUjbyjAM}7N!skO!0h$Uw#RvxANIL ze0!SU*u)~Ruodty`R_i#z|a5rk3k6z{gdazzxn?9>#yf;zkB}e*H7O(ih(|6)H;=r zxOhQi*UOjR@#mwte&tzW<#*K0f{W za{lQ@=BC%9Fa;vjc6vCA5HOckrcW%$mADDFQc4-uzTfRclw=_{udNZ{RLjT5-1*jD zW;IqsR27+8Z8`JFFF7HFErT&+8H=dlIoo`F1P}=zR&IoQEk$jnXs~T9-MEBAvWjIQ zWGS`Qm&=Q()mHKcaPu4)p{L9{R(d`@WAk^L(qNq33k^TqU#U7Fo?;BOm}rf(x#svH#J0>a>Hg_3la*UKwBG;CeqL}_EmjnmTOa)=bw znR}EuCq%T?QqGhza7YLjVU?;jQ-r!63=2XscLHSLWCyC|=qYnABETVH^*6U~fT@CT zc0~Y?)mHkL@<)%GS|gd4#Axo`*GtaA0S(e|V&>Z>9+372cUzOi{-M{+k`@j3O8Xyay zU5`sSKd4Osr&}!ARIkE)XcL}ega=G##t4`fhtsKe6p`ck=wk3tUc}|ccmMQX|4;tK zhx?y?8pXYcl4GbywUl` z-3wBI>0kca|1`e0_MS2R^FWN=)QjZ=CeQhDS!3} z+?}RJaj;+h>Z||t-=9BvcmLo2>0!Yv%!Qet77IrrQw1WO_T_KCxn7P^#Dk{7ho67S zwL#8v`sBi<#t7ZKwUXb-ZQB;>!eM5K#x#c#1Tva>5{J@kl(WrJ3jtmGk)f7pS0bXL z_pPUj+`kyKR+)RT@vqaBAhu#fbZKj#+YN~i8*>t^5)P1k?BH+kr>*w z;mE~%9wCSj5p!B9L~{9>il8~?wzWLyRoA9>E`l{>)&*zAkb_3L1-)&})aFnkh%`Bc zA4exfGt8i!Tva9{JYyR2Ez0#z9^Zj*^q!rT6tNuN>CExCnlf`Dun@6`WRlyuMT*2q z6o$kX=`GVUGvubu0%>a_cguSSz)RBb$Ri@m&gb)S9JxQD|6cNhA)3u$mh(My&YKn^y zFymjsVX7h^LY7Db2po|n2_ixfQzfR+b1P_>aGBLXHma#Ox>W?2bI-9BeIuPgnUp}7 zbbd|-NhakHRRKmORhy~cOXm%sb%{O-x0`pdW9-QAxw5V31 zy27mL+x^K#Jr~>Q{L|0$u6*{-|K$89Uu=K&W4Ldf+;+0-3=c+<0q}H*-+lM>-+oo^ z+Wn^w_{m$_tF)*XImc%r2ZyQ1jLbfC9+QF090*li3IRAk_;xzK{rK_U{hR(@fAjor z{`&2oeqKI%>vwl|KYmB|Cwg~=4TB>9l+!KiLS!u%0(OGCGsPKy`av!5Nd!!Xhz}2i z-r*WB=BFv4GXp~S=pJ@fM3m-4KvtfgUj9En|N7tkSUFCJ1Q>G+7IE{g zecQJ&hN=Rvh!o5c2j`rn3fF3?c{t>#2a@#6REn(J3q-paCQ2!zk5Y=1GUx2Qx7yO- zA;QyV0OlE$bLX*wnv-@BvleSon%ro%PV2b*;+fDPAlDLZDa`? zayTqpQhm!J*Xy;_O1GTXw5X9F7$n9U0hv%rnPcW$p-JmUhr~~hUUarBtJzr#G8M|k(h`}5tx{)Bw-OQ*XyO#wr$%D4Hm;jvTP|&H`VaK zn`|JJ28${lC?e@*hzN|ZmF@yT@EXD7<|3?SgcOjx5a1g>JYofaODRYxpICHQ7Ot&D z1R)?{C;&p;m&Wuv$a1+C2LBzd}hzRm!N;k_}$5bJb5GVO!ve-*ZQsF6W0k0JzdN^&AMStjad~%w zH)lWsXYXFPrfV1ojm+4iLZHKj2uN>52MCEn_?+l~DAdZ)4n)yYO$%b#vp@*!!2%ToGjE*tAgmJ%dtyL0qnlU zyjj}U+Eg{o2P_;;0NHlaLdG$rRHW2WY8|69OSq3Q0ASm;IcKISBy(z<{s-v7XWcsSr$(8{AgwR1E-M{@GEW z0ARKYX))Qh%{{_l?LQFH=aKXj1A~BC+tfLSF$*G`_R}o~SIpckSeD`-o2`Bf%ukYo@IX0c={z!Xn%aQ$1fIA2l1}tPiK^8PIzf(m1>t&~%?3 zNTtGt|KGj&SO4<(>+j$H+yD6WfBet#`1JhU6aNi9hi@M~Jb&~s(fG98 zfBcT`-qgFh?b8qOegh6D%ni9R0GYwEL||y@{0Iyg0#UgN*DJ&OgD=Bo@vG@Za1mr@cp>h9Cv{rmTT=n)k0^!N-OOYP&HNhD^PQOfR4 zPIJt}qv=#)B%(P+sVyz8DTG=1QGBjPMrg1FG;pA837c%9AYmi_jR0z@Bb54*^ zuQr_+nJH1wgw*?}wXOgqHFqykIQ6Eha?4KIlGl)#1-WR<*R^y{z_ea+8l=cQnCa+8 ztxeKd%#NZnD%7=~Oc}STYRN^H0$^ zYN?+2Ew^o0mTWp_sWsmLkwQzDt62znMBIYRa^Gm?ur%cXnAwVntqLLn0t6gmKmgb3 znqiZmstT4dWXPCm7Bfxdc&dsMy_pKi+fFFlVGUJP35kTKDj=YFt!3Hq0$iODN^MdK zvmgdHAtarK5Ck~KAQVD6-90$58F*mXo1Aud?DqZB)8G77`)^Ng-tn6c=xy~A7-+9S z00g4y%w(u=%1tQ{L)?i+)Z#P031-L;L>j>1I81oAi;_8g+wGTMe)(_z=IOuuwmctW zY7oZ8<)ix#|LM;@`XB!SK6~i)LRz$I=qTGc!oZNYO*3L51~RPe1VLp#U7lWAC6@YZIj<1F;!KleD;JYhGwd$_0ZjHuwLSt+}@NiAWH5vA6MB>BO%wb2J47Lg1(g~eQg3=~i`DFP0r#$^>f za06(H$jk>*WD%OwkTFj*_qAz9!n9Tp;Lyq3a!BGHXzt;uK8oQ3QrTTdCdM=&R~(2GdQT4@!&GDnh^Xst;AlW&4IQfy?xG=Q6vFu3QrktB<3 z+#!HibWT{0`6|eW2n(fm*wm0{PW=IZ)O!)JaAHpBDW=Of4Z_RDu?FBCo`PUPRCh+q zUGl!~>F3Sse0k9bR5d&*Q7Ll0Tr=))^xj&Vs-c>BCu2-zms;|3G1HYjx~NWn=!FrE z5$PZ!rdPAOjXZ)0B68_%9^?@e00rF-^CJVpq!6YG9 z;i_Tj_DIPY7uGpjt8;1*nc)DK3hrbYrw1iG99RBQO4ss1NPT#|QOrb0j$~#IiwGQu zIiN!%0Ayi8hp_9*_4;z%&P9?HgWzVt9E%u9;pSQX0Ht)yO7Qva;bPzZ_1_%-;TJFO zFYkWz5x+gl!>N4y0qhMLaX~omLI%vh?C8W|nT`&~KonvQ4CvDU;HWm>{H!hj_*UqPKcF3Dlh<52x9=GHDDw{ z2p#e)j3zk3akG{``+FfBkp(?eYFU|K0O1zly8c zn5Bq*d#KLiS6_35L-n_JB3q?k1mUfghn==2t#VC>-9V-I!%g6ej*k+X zmLf6Lnco(0K&Cvz32BZ=Tgzc))<8g1L{g%igb58zmNVcjY&9ZLG$O1&e8cmr6#*f^ z31iN$WiH#61Quf3w%$8ta0I0ekOBgU(%P-AQY4A%nG~?R8nKw9IR#qAET(X0;qZkv za5pnccM&2majutjY6{6z)oh7qh*>f)>gLnJAVdU0Ff=s}Z?!EHO7EO&{LGz|6k9HF zP|A5D0#}|L5~5{f=dv7R^hjV}O_(mCf!A7Z1`!gL-baMzLq3;*!E4Q1^^N!nsE6!5Shr$Yb_uW9y(PD5+eZSKIRX-FaRJyyKtk==RaR( z8xjgi&gM)FJkP{fm*NfE*GDg9nG$`uzJZrcZcTXR@*YcyJ8$8AK}d}CmL_Gx$r6jg2k+A^)=6~NKf{2z$Uc`B%6Jj8nE=Ld1ice1f zoUkBL0;5tX5D{)32t=f@x+rwG_R+R>8(C7V3;~zRWk2mAB_R6f!a~BilOQGn@HvB$ zy+Jvs?R}1^bt_zDjsw($`3A%m2ppr6EA5*Unr2Q@BPQE+D*XA!@2<1QukHEr{a^mI zUHY8nAf;5<+WjXVOcH+B>Adl&OySc9yJ3`b8D`~FhRV1OMsp1^(C?n!|NJ-e>lc5X zaXH5OtK2oJ91pbJzx(u`{H*=+pTSQ)utuE}=h1A;qaV|^y;v@3AY2C#U|`a`NjTK& z>E5%44in-kRY?(1yU(K|(*3?up%HMvA)jpzpZtt@d;9*M#N{%7`}FPK{3?$A?ce#&=I+j`L|p6bmLc5i*GINu?A7YiRFI_y6>#fAW(r__KF# zs(#{0isUi|`#3Jc8Bm<7AYy{(iJS_*ynp`o+eehx&$|a*h6WJ{3GwV*gwr>`m;+C1 z+m=;1BgLA>7$Awr90M?H6`?bapu|Y!t&sbJ9PQ@3KWygTL`nqcG$d?W9b?3Z9K)IhA)BgOa$D1lo17%g{>jWTC=+ysM=3>3nZzT^qY43l zgF|2f6f#*aTZe#1(J2t*xqB_E?B)X3Quo2$<0FHLs&c za}_}DjQ{`wq93!hn#hSnS0G{GqN+^fh%9&PFQNiFuW}L=+x3S0|<7I2R{5@`Rh@Bd^m`vi`8_MPM%ZK_(6?+o0P#(UNZB?o~?0 zdf>t$brj*A9(fTKk=}b!cT#f|keMGTM+sWtcbbuk`NSrU zlW$2O0O002C({oI;{15C%Ld5Bo41zE!IdflBp!DEaBpUbVW_pvIdN5IRtqD5ufotJ z-Cqc$6vtE=kekt(9fzyByVQmR#BCTc5Rxz#MA2RPPzrB<_Syc$hxOO*pa1%|@_2px z^_Q2gp5QwD+vDXokJrmlwgL!>?p5C3@uB1NaO#&?PgPYeF9(8ao>0f283a70zIl5$ zK0436-u?884}bE>-A_KjPwwEp&dLtTqsMWK>!of&^$Z1Kc0#b2rLfy1CW0WLV_u1| zq98=AW%g?TIcN|9I58J8yr{o?7gwntysf8w%rU}HuJ{4+hxg@251;+B9|6$k*KRLk ze)|Z|FPE?0KYsJ*?=N)m@%}n{cZk#Jgzi-M@-oinTFwO+4BF}4+YkQei}vxo{Nyuu zyU!L-5QIRT45)V=17Ma2L~)1Xa%|hFNF^56?p@Vg!^{GPQrX)1e7e7jh(+o5*tbp9 zh{(baFx(TQ4*@xTOl9M7y_Ql6)&QSlM8vl5s%mP-b+)!8v>yR$tGV{ZKtuCz0z!Zy zMRk@^Q$=a&XVx1a^8^Z+0=t((UbG{hyY(84PiE0T1UPm+~iNrlpe24VOq!A zn4^|jN{KnLVW_2STT5_f4#6;P3VsOTf&hfM{O zh!_buGE&Kl2t?elAmA3+_ouhl&4KdyOr8)%L`JtJF(m-fkCjF=Q`4CQT<6t|x#epC zXsyjT<0d~q#7K}+gsK%OX`=!FGoRyVt*L5YIC^H3W(S6d5YWdEVP=UW`u;au7=eHR zV@?sqY!VTP7y)Z7IyGT-?v94FRu5mZln67ewW;ZxlNgZ~&l2*uL6~!9&~)||`)NO} zM;?4BBkR4_T0GVSiG{|T$=Evjk(~zsCbMtNB_k3;9~LPpO{5at5=ErQ?Vd>OEP8;N z78D{@TZcXZGE-h-38-ncs^xc%RuF|5A(E6iH8*ESNI^Q45X}uyQVN1du{zL^kBXU@ zc`3{!Y5LC=K8rp8AZ9an&)u~G064tn_jy^V`RI={0aZU*K{uGa8hE^XopI z2R3uyn1d>dAd8n%lda3sk2@jv?U7hilNADr>78Ca)aAx38>x~hHmq&|reji5oe z6{$cH$3YlWO77$cp-LlRyIv!eG3p>h>HG0XNOEdmT`Go24G!yspVL3Xf6?D2%Zv{iBc8T2`59;hu9c(<|d3%edE}DEX`_Fig9KS$f@7*j-q%NRW( zQlS$-M6^W4H}}{oA2Bl6%~X*PZj1C%>eTtVN-@2K5_*g|vt%P;EU226=k;rdsNRyp zVT=?Pc(|~nW+#^!IouXtVgd(ut*z>uwbj)1q+rK}r`%x9S)`~X7KL*L{s&(eX2t=+ zqB@zlmYRoGD#`NI(v5eYzWG|)7(F|9X zl^=c38wXPli|Rg+9zHsk&jIBA@epUF?F+!=Iy}i56 z0hQ%^diVK&vGKj2tsM%p8g%C;2pRfA4 zADs6$?`9xguMok6yp<3-j==)8Zcp!Do}Z4uU|~Qwo%Xh$)S}c9;lymF5VYFm2)78p zsgsG2B%fb%W6FiLB9OTQu1J_%sOHHpg;iBj{~wXugajop^UL!~Yn7Rg(S;ZQk{V*} zHvQE&b-QC$^a~T`iZO%v7Kx4$IkpaQch9;i8}W!JrH(#=h*%;V19JtE7|k38WIn`= z{eY9-e#Sv^QCX*aILfOi@C8Ru6(;9{qZ$wE{$5 z4CyK}xAbML@GCdBwb3NvSM8aZF>%tYZ*w+GV4l0rIU*t{^d%`03TBIfeuJzqCj5Ls za6MP)%>)P!JwS5bm0hM8x4vgtyqybgk3GnX7y6FdrDkKSU=7ETaQzr*A6M!U4uv<@RaoqafHMnF(#LzJFe678A zKoAy0bXfMBoNFzq*i5uNM#LOiYXuvK4nj#5pa@nIfjaUgNIb{mJKWcL(3RJpI>S>tFr0 z{qYz4$%m((d@w7iIPMkZoCOP_*A`w7LRgBrT&-?rH~;{)r%O3k2zL@XZ|8n^Olli7 zs;E<^7YRV`#tJl{v@=}${Qhw~zJLDm`?A%CAHSvhdw6J5Ddqqm2#{7O*v2IS7(!S9 z1;RpyIwDspRJhsD+psvQ$?#{4P zS7lf;deoQ8H^2TJ_)(Z^+u#1l zk72Lyuz{)3vdaDJcjj@&)Ihi3wUv)wt z(;A;5WCasB)+n;_20RydH)u9OM2tRO4?d*QM`xnDyYm>+!|%?g-iKRc2b0+Al)xb1 ztJE+cFc1I&K<6aFp?o*&M%+z)Kq70Fi!mTPm}$-l z3W(&cxW=!T?P@Of(%+d4cW>y!kD>XnV~l>TC5#Cg0CiI#a8p7?Hw)le0Z}TuhmQe-Oh5&DAErVq z06{Du93;{1+namf29HlNI=x)xcaKB0p6=j)kTG~tW3H8Vv6sVMoSSeHpYG~NU@%04 zq<|?<0qrm;o-g$D^77r2KR!SI@++VI@aZS}XCKRlZ@m?GyMw*}YM@DL7z&{fAea=jjecQ!d2s$mbop}$rErdHPncr>j6#)pU zj(|DbS5-BISU$5_8>AeTFm10qg2c%okoo z4HkD@A%_e%>}i@1!d;k6jfDHrx3;AK2Z?OXRPZM;j0n*nBmZD|0Mfe$b0{(9jwHf$ z25~Bq|8O4$BGgvLm}XvE%TGP|Fy@W{sa06H&{J7Bl{`x>ce@Xk+|!&TQydoNWnC?1 z5x^qpd`99N>b<@&X31%j`HBxBVy5H@h?&i)xn&{3IoF9?i%c_-L?UXE!T`}B5|l~@*aln;LT$LAk^j`t^T#dqBII}Jq%F6?Td#)UGM3fzF$ zA>1bfl!AZ^K?vs0qtr88_3~GLOQ6rsk9Q9bqmEX}+aG<d7zOsH-%n1dbPZgTf2b?|TA!_)VA zeX{Q#!#GZ@ee}k8OrmmTCV(CwP9+E#x&i})9`B#9cQ!q~d6vM(U;Ub(hl6bO-4`FV z58vV2d$>PCphpzXwCw=`Vk!t_c>K7|^W6@mT(AAOb|Q2O06(2~O??hCB80=3 znt`4Bz7HK++xl^&FbUBSP*tV8)*?6esskc&SzCnMN~o>^G3Ve3+gz=@yP2iz`-W2s zH6uj87=6}Oa*LbIda5N2Om4G*EGShqX8?H=B-8+4X;_k{P)f1z+;^H810uq{pZe$o zE9*PViWFj;L-Xnihgan;c$jGhIt4@;M~Dd!+tzd{MATa5w8-~_pi<4bLUvtoOQ+7| zA`_cwzD)=aNQ>W?>*WZK*!C?ikL+}odewoL8J8=?X{D>pIeo5o+iW#wbIx!gV#8Rb zW3%(=^m4fnVXKW0sn(=@NGaj27KoTZgli_D>3>vM%*5!uCyEpx2+70#;0wduRDl51 z6p)dyQc=^jwZLT#K*`uOQ`Ow^k2KndtTW3!lX4atnJ`CHc_88n>&g#vah!+<7mGgw zQUVE?ILA8(nA6y`Yr6fwt7;aC2s6i6x9h4nQk)9G#3_Ua!?Za1>JZt|l1q#K73=KA z%wJ?8&#W#2GZ$v}VB)D`^(Yah2_9f6vPAB&=;E%LFD;`{nAtpoE;4Kbn5ov9*3jIy z6Or69`*Qo2m(#63AiPCXtuCIJ2sMpDx35SnR7GUN0U02JQ&>c}A3c47`?ihVO^r(x zDQ>~U^|Z0;I7aW|T=#w7LM`0W&^|_Qbr)`cq2pQ#6JVioutlRw9H&q2+QXm!!9B2CE|=5&d4KZ)98dym!t@FP2+`+I=Yk^~g7{SX;}ZlU z5J4Euc^&(C3%3A_U_^+(oRWhB5E2GuA_7$pRa9d-z?evW^5L021O@v~fBl<(_m|rB ze0N`JLu%XI<`_eRrPe!kqT}T%;H_1?j_0qwP9y~cwpwG`-+u8Ud%MeLZ>(zfev%7d znu1^}t&cu0&!x7bAHs;l< zR*WzJ0$^b!*AWNIJY6F~AOlvjWltRrI7E(&^mgdDd%B~OjuR1XR$I$J0fZGQ0}vUq z$x<9Vb%X1V8*^HQq%9eX>AECR1(fGNwg@Pa=e39cWV}b(!q`l6RS*bMCkvNSbWTrc z2>=G8Y0Kfkce?-A%O|cmyS}08oCIDl+lZnSE(aLYalg z=TyoFru<-pJs`|ikUcDtB@q@Wp7F)um1=5^lbeeOA~NQJ@9QlZzP5Js?rud&8VCR~ zVq9|so4HBmu4-<|OsUxzd5hopkIa(p$TV#wJ0TnV>%8vUo-;N`Y6}qpND+}zN>O#H zI7b{;&4i50`zHx3LRgxr!Zb|6V-aaP8^*PJxF8qVtzw}2hH&>`wU6s{;9vdq)31I_ z$IHuq`uY3+Fz-M9cm~D&wte)byxos+<-Og#dpmodUp+D+oA~49@ta35YNy)2`YKS% zE)(#hfAYt@ZSe8EBCr4u_vkDJ5&gMu`$op#4g>~7t;)vWKGi|7NJXLmB#nUJefOy; z&H)xXX5z$(l=1RhOQ|AA6zV<|2}%i{J=8p6$iPwo*#GP&KmO4t@TmHmFTeepznzcY zT!^pF7gxGFpRp01THWCJ@%?**55M^A;l6(N?e}kg^oenM_~Xx^R%pc~j;c`|oyVLw z&_Rd^nzSM|W)QX0DZ-f8)Pb>Id$2q{K8FW7fg>=qt<_eEiGk-B8AbpAEZlp~?0Q;R zzd6d!g=#oNgqI?Kn7mc@SozW{?vQ(KwG0*Rt+mldzE>X0%8&y09J2S`7fC)~JtoW~ zavTS-nIXH)mlmhb61U97wo( z^0V{M!eE0IBS85A(TR8Dwc|IL2?@f| zX#ju#W6WAhPRsK{0IWb$zv-iATw7ZIkT3#>k_7yR8~02N0;CoqnmSD_!>cbZm$tPO zV*w!iP+6>m5MnYn01S63YX_bPBlI66z78R@IQ6;qU?dMWx70f4d;K~sO`CH1?;||x z1UJv|Ub^Sf1$t9TK+Pl;Pu63mxL7*OIVrH(nJEJM=qb<>mbD3lEIT-*3kZ-F|NN;^ z2W@77zS8;tz;npBzA>2`K*Z*bkoHklRS_l-gGG#=IuWr*c{O$-V_wxn2{DX}I}TjW zz?^f8k!q3zp_@B|0YJ{?63deo%6zU~=b^RLl((lGpp+6A;~4q01LB;f(*b}4%_cz% z)$7X~6F&!X^yozdeV)*5Dx*6xbBUp5$)+?pZ9rtRBLV_W9kTJa-@m+nc{!K*;kyT^ z0$1~4Iy-|$7zRmD%-4|!NEJXbuowzH+kPs-OfZju5kaB?_D1C4PConKlfU>=cpC8j z@w;FDc0Tv$^ZEI^H>dkIpMP{X-F^IS`^k?2?DW9{kgE+PBOzp!(409jN~v3bKD~cF zzqtd~p%{);7y`I3nD=WhTP;;+KTlI&;DR2$?ah&nqn{&GXQ?bE8IVx7a({P!xn2qR zdOfn{4V@{(n{(D$k$5F|$jWnN;W1{SKbcugvkcE@qnxJBIZLe(p|>33C9G04b!I}O ztb{xQAnxw&o}Qjctv8W3Wka6?=v?BOd5RcIt)-M>bThO$SvaLq`HU~vGcJ8pSOi6p zGF8KZ1d5ckEl3d)BBFQ%AY^;pYMVNIB*e4LIS4tuAPK2U)P?(sgvu-#LP}c1nsr62 z!W78Evysa6BmiW>;Ptp>Tc7gcHDN;p=2ZHcX===_*CQYj0@P~D105h4R!NPk?&c9i zin`^LTbOZ8vz;)_sb~~`6i=0RzuQoP~By-H#O09MD0RU5Ht2OuD%oHB4eu915JiH%Ax;oPcjR2*V49Z)B zeuN~y)>=j%5i2(-=PlXX>C`!ug(#A29B#|LkBb+EH(UWQb2>TZobhUzNzoBY&SCT6 z0RV`YQ`5lV?rA$ug$O()vKvpQ`H>Ex@qdWUnK+SAR)MU zWf#}X0f8x#$ef7HJVG%6IO#|ifg5K&b;-WgAOMK!HjkN~;LYO$YE~rYw!=M2E!k%v z;yii;=BsdZ0&l0XKb+crLgHywN&yEnim8S=)mz;P5*Zxde$QxJ3NiQN5oUJ&6nf1-{JSqw%=Xuu3aac_}x!F zhmRiWpM4?7S5^`S(b;F)HoH2Q#xM+UH)KL20Sz}}GC&wEjaX=Cm(xi$`RiYN`G5Vt z|3Cl3um1Xj`-gw^&;R0I{`sH(`A&rQ3Z8g+LWb~1?&(DXLa0K@yLEauT)fp{Ycu>d7c1WAbzMfloEqlD%qy1GV`&Tw&`On@Wd%fzN0HXCmE%S=6_(TK zoH0HT7!b*{NpMJR7joBS?f|*C2228yTX+zmO@&w!)%?B^0dvWbeIy+u$A2q7HO{Bg z8ptBL8)B4FdmnjFvT&h7NLl++LTU*U87m|Sp<H7&D0}O ze?+%iGf(gAWCMecZaO7SwYn|Nc_6x**IE;n84=8QGZi`^N48lxJPdy&O(G&8`Ylf_ zm97>2=Jb+njuc zA`K$?7>lcFG3GG0Qi`c^k!5mP>O^;NpAIRqu%s%{<$9GO5Rn_Q<2ab5wyI_jP>NhG z*P4nF&)kazM^IHrp)SO7+wofGW+Fu?Wff90R~H~v5EsbSz*5S?w`iOtyGj*!t&7G6 zt1>(Kfrug{3s^)F5kSp5*_RM#Y1XZJtnEJYT@-JxcR?HH-E$`=v~ zkrGazQ_USEQ=!mw-t4!8fH~J9LXmQl;6qTb2$&(_s>lP>Rx32kz!`Vm}0b2#Y~x(l~_#ypolPWk_wZbls@@foXGFDV*LJ* zl=~9@656!%01Jz%0%7h9h{)Z1`So+~LOB2p4`j$SR4K*HrYhfDpldbl7Gv>#nYgxc zy&QjUExe+GlL?r|E-mqohdUq@76nW202;b`pDIjp^HMU)l4h}FNYR`Vu|={y(_3y1 zIkAlxy>DA{bH^Lt1ebCg0R!_p8YHY{trm|Mb8>b`NJwOmYX&qkK+M%SA|@>|6~F}L|Y1_fU1sXsM zHH5ZTn5xIsnQJS6Ma>{4gz+f`4-tY73f`a3pYJ-R;zs&WtHjfsK`Vpr-~-QPyu5FW z7ErOWpid3evK1-p(*fPVA%M*RsXe@fuz9(#5NK?7=PGsuc>nd|ufF@X7gg)`4{sj( z^Ur_vi|@aGI+YJ>8ca0xx^v6`mN^Dj=8Xvn07;0cK&|@pB8=@+h$QQkU=)_|a*!|> zBp3!9Js6RwksBPBt2hv0t2L$v;Os+cZM9D8)-|SWbpw_;W~o(Lo&6|VRXx_7BqCb{ zk2%L2L$<9J-ddYr$T6p4czxLJ-aZIzHatym!o);onz`ItZ5Hkjp(@NNiA{t|sr7Ps z$)xwGO2mXzWPP2&129Bn*&5pzXM$P#1@hp9@sb4xMPTWe(=R%%Ht z79cWF5y?cUQmd)DhX}TL>@&rJkqnW^il4X z`JI5oSfnHa*dx}YA)=O&Rc72&_<5`YK*F-z0sz)1B6&X$D^2|dl$0VVqn9EPpmUNC zAvt(TH*XtX9AhRemDh+YQZI^-bHzXW!cf&DU6xW*XCGZea3vsuunZf-B$z4L1_3~@ z;x5u&;z77f4@fEM0h^6tVW-EV;Jc!)`k!zvk zwCD0av4*Lb5@8}nMgU|^-woYriW@_p{=V!z+}1uVk%igf5Me)zB_junQ-u|ge+nRQ zrjo=Gcq~s0Q$Fe(p=M)_)aOM+k&?RJ>`&*IHJ=tW)l9w=k01mtGNvAv0h!PQ7-~Q$ zMUdERA_g%72{8e)Uk@;HcQg;OP<7QXV-%lrjv0t;YvWL^2!uX#+e&yRV&nik99#pa zajEP&MNlm8dOcBj{_eYW_rO)m=Tu_>yI#T^gBXcf%%WeP2yMP}DO6g6U@9ft$F%^})pLkK|xq;a_vA%KWJ$koibZjkeL zodgK(6mG|qQo|e>#u(<4SQ=DU3saEd?xY^!W==@`xNf|cQmqeWJm!H>r1JH8X$++{ zU>0bgHjYuZ&8#zWX^l*QcwCMn#&3T8yQ$jt=7tUw!4@b|!YzyOF-Lkx0pRF|NU2gB zV(Lm4$zKCwY;DVGMpD$ow{9a5V-|o`YYD&zAf!ySaknJP<%wj|vSWCabVFnjjG5XE zoT@6!rwJnRS1tt7C9Auxz$cWZ(DHfQ>$gFiX$y+h{kpF?nx!F6}T z%PjGmj2Kp#h)7IxD#VSOM++;P_p7jQA#*eJ@UT#~V4+thTtWmuf$WY`pU%vsmgJEkK>CvsWAvv-2tbceXBGkq_0ZsajD(1>HG%L_YdB$0J)H^hc)na7p9*qisl?Kn z2wNW*fgIW5%51j)GtcW7u&Ca1R)&NAFTML^0LN%d_bS_jw%S zdI@&~WCB7^?X~j0ZLM&>ULfqW6=5!WLkMzX@NH|`dDrWuKR>Ha6fUJo6{*{HIziw# zx{p4O4iH7;`tqzp0U&g~A}h>%xCNk2XJU!~H^NATB{5%*UTW>vk=a~r+wzb~9aN(1 zZ(H0S%G-7Ho92->=R`s&>}DQ8gmaEtb_=xD#vG%kzI>I{=9c7h0La><_l|@Kk;AOS zZwuIPN5lXZ5hh6%9uOvuDEBUD-OVp5KvH0nwQH%5ueIb*I;$uof&fBvUtoq5gp4s% zXX;h+Y5MzG-W<=4K2i{$N0u*MAKZ9NDK1%uXO7~LkeKtFF|$&OhbPPZhkc|_VvSNL zoB*TelSWLPFuYRo5+9xy?cR1@Q#(rW^pZ^r zCoW!169=9R++xuEH;kmD3RvizW^Rr}O6HOSKz_P&YON*KUyyU5ydKhIz`2VT$tE#X z!1SbtwY*+eT`u zxc9z(cp|}!r^gh4!wq&K%*W9~oS2C)0z9lpF}EB1idJwr+cuw%{o!27$qBC` zj+evcfH33$_q)?++xN_Uj*v9=vyeOb&~aSQusz&^DHAh*ssmDl6VhovhhvbDuzLh% z<^f^)X2Qob3TXQ&49sSjN@P@&m<~j=ZnB?c-(pUHkjla278pcD(nA~(W;$ly@6O=? zX8qFT+*k^jZhPZGfRr*qAv$l{wl_e`^svSiAX=-(I7+GDA*JXXh^SLDu2@&457}O1 z?%9ogn&NoN+?UoiHBEVL%5BX(C7WhB@`==>W*w8@)zsN1#V2ls`mMDl#7q@iM2gh= zF1F?xDO18$a~sM`{%Ub0#9QtjG1)Yon({UlZd+AVW^o&7Nec)<&T6tqX#^bV`Y^M=%otq#)PaZ@m|;CFPQMC9RgT;0B01 z%_71r;3iQKkz_u4gnLMal%^oaLvrAzCQK=6AR-njP*fGcLZsH3A76S?0#;WM7!Z(> z=u}a*R(l_&j0POn)0CUcy zVCB!BU&oB&HuEe%rfRyx)3B58c$!OM?Xdkd3?Q8)kh7_51@iMpH1`xrWtEX>^&-+* zy+L6iE3!G~m_50hsd;B&S+aCu#@E);-STeE8pl?a#_|>sq2~%3SBuj}cXRhh`gH!c zDJRR%Zrk=``qEOMVXZA!LPWUlCo{WV5BI2BC1wcZBF+)y0C8Lnn+9N9kco8Y=-plC z(cPo8B1Ig%?9C}`^f`vqR`1S6)Xpa=lIPUve3sMJ&Sw_1e$>jX6$A?#MW_f71)8?X zr7<$yUaV59%vBZcKK%6MdhOT8J`e2&gOBSFW+^Pf*QY0=3k7MggD*a0Cmu9$MQ*DD!dvKoa|V%D1Y>-Th-ftjZ|T$Kl}sKE?>u*^j9M!b{t@ z*4i2pqp+z>RS(?mPkAu|^D*c5-+s>o#5m1{M(=icxr%VoEg_)yF;z>gM0B}cbe)( z;Sr(JavWR$6`{WML1;rWOMF(M^?^ zTCJ&TibX41;yq4$a)G>-3ocivkgu7nt~_ej8)XKJ+kj zpltAvgjmp2uSb7*xta$vp$AN>Mbf#60AP-0IsX<6Bm#F4#PDoigrQamSGQr~h;h;5 z8l%JY+FzcdckA7CM%aGduP;xgyG1x07!M;PY?H}^LfmXLiUI#Qr!##2x;54 zJX6v-nrP09Ma$zU>-{{h(^`-lZ(&ZzbWTI)#)6$==1l=BVlq)q3K$|~jFCgyv<>Ri z^mB+T$L{L{7*b9`M99K&^q#^q5h0@EI7CDeb^4=&`b1cI|0LVmei+uwCUU^NBqdap@JVbcRG4qcur6Ay( zn&qaOyV`9TBN>feO39I0hCT#%D#Rc%z8lvL7|`AO(epyWq?YD50WbiBd12%c0Df2` zw^}h^s$P#nZKjB6U3CFSD5VJVm?IgHW-B>L>hFaQ{@x2C$0jKOYOSg1f`P-@3Ab8H zEgpGYgNNm8(cKZ&Sdf{=oT*_TN?0ZUL?*EauUV(NldQ9T&XM9dGmi+7qPNX<>b`H% zQcjBsAk^9-V2qhthLqFQQq!*o0dveOf^t2T-WdR>rKAoTAnMI|1c2t2X-@gnK}5uY z66Z;6=8IhKPH89|GaMj(02*gq0EoguNZAP;$B_>e-=q{NG0f9A-@sBz5s8ReYOclR zn5mjD)7PMYJTbVADZw)X)kyJ9Z25Mim6 zOUaPrZ@>Qb>#x6aO&4hBgn9U!TDY(j>!Y-aRYXdrHo-Iu7h37C{qbc!KQpnLPxJG; z5A=HV%O$P{P8TkSyokBAMS$59BAXM&bPFk!n9uJ%?APn{dIcZjIJWx_-AK*B%mx(M zwX3TVP-%6)yT@8cSV|=!4G%<5RmQo-PU0Q7m%G#%QBVcf}V^k~%sYX>O z)hy;=7+ChE=ul`_@BO9j!o>6F?VRg@NOw5s+)F820~TT$I;M`$Zln95JMH8B6%J(( zzs|x{s1j5?jBAxrFuX5t=4VRVJhCqbJMwco$M6=p>5mLIn{D^I92DI zt=8U$yCdOi!IDIPa7636v!0dnc(mT;c5uj?LkJ=j0 zavNm5VD4#Vj_|3ISu%D8D2uV=0#XkHbQk_=$C$ynahub@D8&(+9OP3?JVpVw8Ca~{MbwA50Nu(n#H{NUIO zU?LV?!_d{wgPFQptpyN{%%}lO*h_Af@|!xxM1&&cmLCYKlXa`DzBZmYg3LF^Z>Di1 zj0BZa{sO1WMxcD*7*JDnjix_5dQ zU;wl1Z9Cu9{SLSQiPYw1Ql(S^2pC87s~sIik2%0XN)1E>m~Mptz_+$}*SH+PgpCbc z`_e;w$8jySh{*N0uGY=hxq+BmQ5$1iu9vnoBzz@;=ed`= zp!KF8rNlOup$I^TEX*QAoaf0a=sN9$IpbnlrETu>iKrC0Ex-Ra{`&p0S~JQn48l|i zQKYz;P7Pk(I$yGyoQFdqQ&bfR#~cu0=A~9d9CH>CK9!S&Tm>!W z72I&PfSDO-W&j~YVxi4EEPUDKJ#F?`mk|*p%h6+uQ3^1Tg(F~qvoH~vTB|Jwa;BEU z1VB_%3T|67wK)cQW~zV=Z52Fhj2`A~s{t|9YHOgXqnB0yMO8h3D0CW5lWh-8g*BS$ zG;O5<3m2y8ZZm=rBX;TPOim2sZs_3_2FxtTj=)=;bBJK?oggaRmxt5nFT&u5A;EUq zphyu6_duv+!=a;36n1rrFzrA@jHTA00|iPgV@?Pl5O7bbqm)t+6wn-`AOLu`K;O2_ zXV+(2MJ59ER9*hwNMT17(UG% zA#89hTuY%Emodlm9#t9^0&^4rCW3)1b=v_9E$Ac`KBoct-P?O07^83Z_r%<4EzCBJ zh36cS)GQ=NH`6AKnX=4;n>UDs0jh`J?3<2+ZiY;$tXoVC0ti&qT+9XrGv^p!eU z3uho(?>)_lSOgqZ4F!qN9U&q$Q~;o=YPRqD`q_x*oVn%^kufF&W~O1Q%{{3|i*11j zjH^0FrhfDsZ%oz79FWEwMo3dLT&`EX2{>Or-`imVbc?B0(+FQt2)8uZe7zoyK?sm^ ztUvg|U}B$BYC(4@#mxJ>Y;CKx<~k=QpOM5Qq@>fV1#b%Th>0LQVi95Ph>Q7k^g~1l z(Zea|^`1=f4A?DK9xz`|E->6Rb#+7p$rrqJ58;uC?aL`0Fy;`Jq@CaDDJ3FHY9TI~ zSU9GIf)k7H3!$8A>em3p{GDl?;6TV~mQ%tM)#o*tD-DR4W2W6Sdn^dZy!Q#3{ zK_nM5iUp@wL5pRV0g)2)8~QAw0jDiS_qVOYb91W*8@FhMZo1|u&#v~kF`0ToaKbk_l{;o)OK z09D?$Ga&jLvCQ>L6X6)p#3N#cxdtH;qku=`DM5uI*qNc=^eb8qE+l*$W83Z=Vyc%k zxQ0^|cLRX3Z^#6wFh>LcBbVZ8M3{!Mti(w;b6sJn!qEVc&?0yVNdnLeERX_%1>JNi zu#nC!(9l7BS~vx9VFENoH+2Y1Eom*ll^Fn|+t~IE!YnM*g{14CR-0_$28GAyFp&Va zH+Lz=2-oZ7vTrAmS}F&V9$hv8hNq=?v4_i3IhLnZ=5H>VZZdCNjpkL(X_dLa?HikBZ<5%AZc69#YPcv zcQbwS|6vyf+~n1{O?ICmC9j8D z?}?d1GNlX0U!GhPqicRwzSPsTKlrs(m z5HrOr)nKJa1emIuB`h;-AvbR-0MGTp6N-X2BTD^a{bv)w89CxrnQq+pEqhfqjvP zj)=%hJ=XLrcL@vWR>aKRridit?gr>gTsfvjkq~sMRHn8DL3XfuIxCbu$0{| zx4e{+viQV}WF479{<>B4Z0y!dqSb2d!kC(_9FnKVEjKJ2<`0vH@viklHIRsj#7=$BcjP$8}a$l#&l$cbT$34yI`AU-b7P#cNJzW0|S zz=fNDP3tLM0S^ZwB%2Bo0S%n6Q9D({C{lzZG_IGcssW;zH(^kN;iWL4AYmHE*gS&r zS(VbD)GQ4$6NR_RYT%$c0U<_Ik}-R3cL|A+x@tjUu7M<{9TDa@NF;z5#X}iIr-C^Y zGII&f?{+;m9qu`~7N&qOaEQ8Z!%Wo5e%7$j2L=&wt_P%+q&u4_3xO{UsBm##qzYWj z@TjfMIpIdDb$3_Kzhz-FBlD#J&Ey{d07%`V&KYU>B>aIpSH#?Fsex%x=0q@OPm{G& z!WS&k%kA5~>r{1fSlW#g`w?RVx%ucrO2HJft`W-2EkdaaESM&bTxmpvFwLn`wG;^t z?TY}k5CL{phnN^qA#8|FfQ*-dN-Q_WzTEv906Ox)D(zdlZre~S!PPaVf+{U%m zJeJ?N)s_nkVe#;s8RYzcnRG5ZVp6i#io$$}sWQ+iAU9a~T#IlD4Lq&jgt25n{)6Ms zR@U_^-z6b_W6V+t3+pj*`vTyv>NWoTK8)W#l4431;&Rg@>QXq&#~1)mL~hg%%58gk zBhsqF#5uXkBnAkMa3svgEoQ#U=qCg9e72Uo9WmzLIc&VYeL$vbPUC4F%rry_h^R4bVv%~rvjO;w7-#xY83%!OGHX)URcLI=2Qt@)hZ zjk%clRBglw?UcPq-C`;s3K~E`45=G3gHGWZ9-|+1+Zxx|2NDvKVK}RsN!wr;V3daF zfe2W{-OR1sox%ZIHSf}>AJ5>WJ)EX#h^jwhEkc`5AG1fXQi{DC(gd)Cc}iBy%n3r! z0o1@9v(62P5UTfg-23tUlLRwjCh_T*nAW~$U^ZP<2KuytOjM&;Z4S%7;>0AuO2TqliEm zLW4zwi2Bh}AA!DT772Au4NCSXvrnnZ)w@I}Tyi!u#-!!G)^w}oj(VDvB5uh{F*9ph zO^{ShtL9J^X5oZYC!#+!JiYfKlCr1>7by^+YQ({q1w)R8AjdTPjd#5tUNXVwUezA0vk~Y|?R&nGQcG4S zVX@u(Tp_H<%1<{G zrwx=iUtkJRgjZ_piffMucgPPqfuKmjRHP(*lQQYg{kUGU!3@u=jy287Wj;jWDubD8 zExE|aw+;z0|0}{US6vh5bm`AIAun>(FfX;x8nPksk}R5=yN25wg9ysrK!OEqOgFWq4rC^U_2Mjc*)tJQM#c|lhuY7IrYjzI8m zV1m6x+f-fNyqkuy-#KmF$?MtVG;Isr_|nQVSKI*G^%&eL00AR1PVJ)~IwuP<#yrOC z6C&~yK%l95T!wnox=C$8+(*yAsF+ivAR{sYhNDHO&Q3*wW#}*r-dZqYsjxRItcB^} z4n%;3TBB`;ZF8w|cXxF^TnEO0xXz(M<#Y}#ZU)3ygjz)i@4ao+!{_XPRJSvd#59ip zbQ=RPbPh-(8`HJ-J|=Nm&8hC^(sqali|oKlDOuvUdxSv%A%O=o%{iI4Nksr*$yBs- zn7MoJBi#0V3wN8Zy6u$P`WPcwqJa6;%8(_Gh^=m_6LI)YoRL3L@50 zdhdB?=4tCUJinPOPt(nwnj27vaF4`$xOwkKdSDBSnWc&}f0Hz3K|rZ_M9vhdrbsC( zQDkacW9FRD;>`odOp>}Ak90A6>aS9O#KgoHpi|RyjJIf5%4mukM5}NSkvUfNoP2dt z!)0g!zNsa1JbuIftYNY+_uh#p-@u4S9@h=0xNJ0QG6*2Td0s8|ds^9uh-i*cYu(z` zM<>Ek>YS69kKR*J>EUxuos<3>I*c(U6PF^UK5u66+qH(m<+fR{w7|SvE=9_m8Ckxz zsVQA`3np?%oXhggAYo{#Ej)Q4>PAQ`tZIe1Rqivbd}OzKJFlEHXSloF1kt`CNfyOy z>J($nv&oO4w#vb;u^+cr%7{4T6qeSinI|T}by1b?=v@$?>BD-(G7bj4C#ZQBcw+jL>TQcQ!}#vS31G8`tu@VwuG0q!cC zNsEthbk`=hy?r>2&IQm$co2*G@X^az+=B~qJ0b(My*?-~kRd+PncHgaIQp8lw|HI19fiSY8=^*a6Id1lg=BU|64A z2^m5SAp|AN=J8C>MXI?|>X01ra3E%^#fd^F5D^%H+<}S1tY44PDCzfOIstC`mRCZl z#Z1STx47SsB5sx$U&o3Ss?%ogqn4$xOp*=Wyl?xy^`iqI-GHfiAoin|T9V|EPe&}o zI&Rw@;5xOB(P~X$At2^2PC;;BxcMBjwVLOqu*^AnyUlBtIsa6MX+WAlt*piQnKf8^W2rD8zUppvSt^NmCWsy+vB9n zxLd|C^wF7F3hUIIzU1C0mf@EX@ik%@k))JV0gO3I5n{e?_m|5h8A~~F!oNqjAZA}M zsNf=|PR!;?H+&%=6cIIR+cw5Pgni#LkOL9j;QsFZ`RS?DLX6>An^0-XPF{XUhv9>zLOphDoXOsT^RRvRF z$+siIlZB9FJ76lNDWSoVak~H*2{tfXMxI$qiEvfVsb~fVLEc+t0O)SS#I#JI;h~|W zl%UAVJ|V64|L5$_o-E7K>rQNa!`|mycaI^nGP7n(B${jyY_>IIqFI})O(v6Mde?s{ zz033XAzP#nZ`xm*Agu%UoCBC_wV>$-in5-eXs6@*k} z6H$f3Gb6?@E*il7no+64IVWKC`4r}bIF5{nec#79N;_6j7Cw)YiO+Es^|rpkaU8+n!!wjFiAer$u|(U=h=B1#IB!iSLg2 zn{QhPhR^HNz46l%-oA2;{@L5U5k7j2bL23gEj?wwpvmp|PfAWjJ`Op9E?H~N;)BpCzeid)|@bKUnHcoCFHj$|Db+FxDj_dVc5$%G&_4yhR z4^N%kx85=w$Vz|;k~pW2`JMNNO-OhU-Gr>|#|ag9qKVQ5NeDq9UuFi@ z*BM#(j1zaps@H%dbD9-9PPv*{Nh*Mh^E*7-{wY*BHVINv*GSjoP=<3%- zO?rs=9HaNnDszk)LKGmCg(IE8v6!`3*acC#&#`Kkt&b}JV$QPk+<#L&3vCvX0NRW|c7IS35Mn%tYni*%-w)#O@SY$)2ox{c?UiYCu9LMe9 z@nPjxkaRDT|1CERCU_plQA^dnU(9DU=+_Pyrhsu~{U_$-7} z({`StU>|eL)LI~efC_>4zLguQbmuXrB8s0{dlC~>v_Z9HCN&k&ImQAhhx=GJwK2vT z!yx;8YLs^eDgY4Kv{HRQD1vd}n~I!~$S8mWFBBCs&*d_bh&a!K096etU$40PoVo9N zMQQ(_mK$?VyVU{vbr#v$!rrx`G6tu%nH#c696atok7${WSENQhh zon|#&bTiTF=}Ry244|zcF>R7BFUMj5F%!{o9$W7j)lEVyBE2EoIA6wj&M}dM$n@04 zq%GVi(b@(S%pKZW&Ow~#9B5)H=^Wk;EKY#b-7uWF~Z{B?T zFMj@e|KlI$r>~(N<{<=NyX+{BgS&1$Gt;U_huzbrD~S!KfI4_ajL9rvp-sTfO~DX% zCgDh&H~Q-O@@L=bRs4v=)*m16(D6!wh#N^$%;b$BLDO>v8RoNPG~5oHFW2|)VDIC+ zjXdZ{o)K?;=O^3a5Agod2S_$-$NcX7?TOb50Pcp zWcbNVF(WcOL2Wa~OZCdE$^dD-*>ohA9mw2-xT$_sN7?+72~@*y7OG=4 z2zAhwdp3xx7g;63SwvOLV$LbKba|9StW@ndi#9DHLT(-$M5vzd%40dLySQo_bAS+; zOofnIMa1y4#HC7R#EL;?oE&@YG%R`$dW|L-YO!pl5zaO zTbdPuyvH5t87j_FO}vrdI(;kx7ZXK+_EzTz5fgW+H`R^qGl>WoXaPTwq53Fo}fsNIeY8#JV5a2e$MUjfqPH09Ajn@i$1+h2whX3 zNw0^0{o-FAIf)Wu;c8|x)9v(06-fxdPm^>?1Nkq7P_uaN%xU)-;ws`+yxAXa{uiyX0 zdwUsT{N~}+9Aj$q#|Q1C!gd{Io-I_Ek#;-m-8f$+#OUJ2XdlVt%^SRWYM*`bgCG9n z@$K9E*77%B(ev~8{5$Z#&p*c2^P?UDcJoM5aFasBw|xUJjm2om+gci%rlNSc5- znA_#S6H+#I06@5-6~qkHj#nq&I)7osse*;8L@%?T359_sQLXWHtW_%Rg7_5SBFF`W zO%v53f(V!IkyUk$dE9Q>wz0@K&v0K{et=n0vPvx01QEcR1OyQs$DvICMq-`=1Qo5N zVqHLL^I)zE3WLTlBB)5v`kpIg$+*A1Sv=`FVXsCq29eiSh!7TomGp#+@~|>Z$LV{4YljA(MzSX>$?`vs&10q>D+){&pjL5QIw%+EPJ}r>jwzb}o_^%AT z|0^yjp}@Xvx8tZvsmKuKG0x&i6f>g?SZ-0lh~i$={#K5N2p3r#+1he#&Q;>*Rza9M z5sYjah|FdUGcv1^p>R*AA(99aR~dSRPzvmtAXgPLKhCqzD0M0?>8aN4%+=(AdwHH` zZ2Lx_ZR6uO>Y75he`Tg9_por`2v_!!>BF0c1T9=;9ZpPMf&Pe0v${_)dKABT*X!#Z&~UB|=Ccjj;Y{5Ma@{)=B9 z-+UL}Jb(B69lJNaeD#|z`$M-(YsihCe*fpMfAIFd|5tx_`ROO}_AxiP9`8F1r2Fkq zxI*K0PB+$UTbI@#&dfr{Oi=;j80Xen-#RIiN`LhLfqB|AEtdHZCyk<;D6&)}yg zet7fQkAM31oAdnJZ@&DGfBCCF`D^?3%8?(xel;l1mxB_VIO294hkkrXrH7}7XTit+ z>~|i2{@Lq)`tx|D`zJpLQkILoM7}%e-3?#;=DR=rTYDbbolf+(pN@a>G@oQ|sh2j! z(R!z?!KX(Wa)138K5d>#xJ~-aFF$|z?gecprPlh>`*xmZ0ShML z)vH&x<0dQ~R&aqV@VIIs_ibBq@1_MQ5SDH0C19558eS*m;MJbV%p@sEDa^xXo!PeD zD^U-iZ`(O$Z&@+Dq$P37UBs_Gf`Zi5P(j;*FL1$VDI>EI46QYyjdgRHa8_+!xVPTU zc?z$hfu=38W~(1|zV%vhR-b~dwGsCRGC@pmR6UP~uq>k{F{w7oQ4WHLI`2_QUe(!G z|1%=?zSY7q?*Od%>oYTq*6duLo{_QplUL=;e?|ae5 z#yEw0?Oh_0usV-`YRd{D5*3)&ZBd8_sQf|gx^ZVLuGG7u1R0>Z$(XB1NpxJa!mc<`#TaSp9w^XUrPh>XL+LHln z`?_o<5`hwKBErpxnrGA|k(q8D_oEh7x}vTlw3-B)YIy-g*xV^X>zBy1=@z7gcLZfx z#Mb*+FzTu~6cn}hJWrY=D)k_is-~*-N@nHdG6`fpS){_fWrwdLkk480kDA8UV5#;j z^A&wBVQroRi9#N+u(sw+nLW&a?3Yexip-frqN0W%(Z<3W=I%3e-*hH^@wb2WfB%1d z^B?|ZJ{wNIw9P{M!zDj?_3HP2@WX%g`}%_idE5JEZ%jZJ#p}ytdidz~`*!*C4}Tih z$!(A8dpjowej@bz^787VH}dfln&5%(utP9-7*EnOa(Xb8qG(`kOw^m0j|`$F%5)s3 z?ptQuu7{hq)|fagCnhlkr8}fGBDQ133~e0@eS8E`&NB!>k&ts&{p8i_fA;Cqzx5XldG+w=>tmX5SjK6tq>4 z9~w`~EWDVq)t$SdDppwX!d-}nuh0XkPvab;^~MD^oU!lQx_f3aac|ws=Nxg5RcEBx zx+puN4W0q==FHcvUlBxpMJknVOQF9$6qtL|lt=4%#o4WaVo~mj9 zu=*`nm~wU3cn!gl%)MAT#8js(4_9c3edU;%W8TFso^uqZ;XH?AmPbA+Ikh(0dZt@M z)FzjAC`fOu6bTR^(RxpJ78dQI0!kJ#^Et-#`JEq!N`Xn^xE|Hn3=~J(X zckh1nzyAC0pTCulUT;6$zWL&t=jSW=!=F9=^pjV= z`=j=|Kf>!KTV9X%`hzB)ZDX>0tqoEDKuuZOY5qf#FP|n$7tFdjEv)Yw95_#wmT{$ymg!L zy|dCM+CTcq_Ah@zBA9-Ae!l$RZJxu-+v5Y+AFHgU!xBWv#&qTO5_o^&>-X>em%n)T zo4?JM=l9=#*WT>=KY#Q3cYk(%{c`@<=l<*89Dl-3pT5OsLfW{C5A!kSoZ3}3Ne}lR zp-g=L{mbW{e{+u69-gR4is*g;!Rb z(^eB{0Cjo`4{747T!MS=K>*PhqiO5C-EK!cLE}7o@0MQF9412PFhFaq7y%$J)2zF@ zTk+3pw-AvsQ`Lub=2CGZ!=`QfHdj-HWJ0@~=ULX$iVl1znaC;<7p{|RTaHREdlKL0 zXL;EqjK0CRAkltXHS>{beN%|6mU<^{r@*^(!-o~DYnXP^Fy-_IYtdHC$9|MW9-v2z%C+Z_)L4I|P|yHH1O{t_5yeUsVK zgA%x&cz(vF`M5dQU#{D}1$iaZQ?lp|X;ZswJC_mOrV(hK^V_e!yS{sVdUf$JRTKz| zxv7eFcguiVkTy{zRsu5;fj}6ez3KskLmwYwk9edEp6ry7lbAYyW}H{&=QDouJ%0Jc zcYprN@!h-QdCpyb{NMdIpZx9*>C@MEd%@neBmMvLAKv}j|F24b1Hp3~UD(aKHt7#@ z406!ceIDF}RQg4S&;HOY-45EiJU+d>JU(S8(pA*Pm}9CGjWzengR|g29c0d(;}ArG`Fp1qBR<07P@VmXKRgwOSIVfcK-|(>4TVg&dDmRwM25P zS~(AI+NfwJE9r$2)@p$PP)y~j>0ZaUa{Xoy>ZX!wp>J9ucD12YSb~{MGb3#*`{fIZqMx z44>c^QF(^TagORJ5Dy6cql z?>KJTw#&*xT3v~14=CS}yZ7Fkw&OTyRaS9k01Mu^`i>%w^QaGGMh#a2l+1;0>~(!E z$3pMD$iB<+AsP`rCSjR_DQSkUikQfC+PY6xit}-In`mJTZ`W%b$0Bo{=hpk`UC+>} zqD(LY0TJCV`^(F>s$gZ=Hr{u;&HeS0J4AYz**w~QVGdDE!ufI|2QGN?FMjvfF8+FF zPCEMI@4SBa?|%0uNBFzv@%j6&|Lj-a|LL#JFTa`RjCZ$o(D7$q{PHh9zeVbk=*J&F z{q)oJ=CXbI>h16Rq`kSIQA5VdnQDn_k@Nc#5S;ezZ@;#ech@i9UEh84>Yx1ZC;!vG z!rPX}iYt(EMo?1+nAsvI(mjKCcsAk7Wls>d?eWd4fSCt4sPApxa9GSitO$q&rP2VO zfvfctXX=j|`i@lM$u1y5Hue!_%pFO%Qhxs8-(Sfv|Mu(WU;fqCzxs6?-)HOFk3RX~ z|LKn({`v3aV;?-6hft&hn(NOmFMqD|>S2F;jW#K1*wEgg5|(Z2Hb-7vH*pWLIB)j- zH}B?caNpamZEGZQ4s&y5+BcEal;wugDV$@_?dmWxu(5$S3IbEB&djb#p<$AkD=DuwcRb?@S zxp+{;uGshe9OoU6vA7^(POoe%V>aZgsH*2k#+nA$oop~$8Y>p|ct*e`DeXkr`%_MRWJ8I<5 z<2<*0uU#iI5(N$NoFGDLy-Ynd(=Nx2nE?=05jOL2JNnkjEL4jv5ufK-h9lGpNyMU9 z?L@eDnIzLv0`Hr&iEwKjz&fK_{MH+WTW~r0!g6c& zXaZrzvieO~YS6@h6zQZ0xOGgZkIIM6j0)XI&GgE6=bjmt%R?e-##KUA;S2A|pwv{L ztkwWLLikRTr3I?2m{0Yc)u_A#Ty4$FSEp=I4)1TR2v^8cMckuzb&oo`)epOETYU!R zoZGgUxs-j-$}9^NWufC(3T)qcy_jQ60<55BrK=K^JGpHe1z5z~wYR2W?l0Hd7(<#$ z#F)cv`j|w?=CZGVh$`D0)Fr#nP6pSElz>1Vm6_k{?=DYL!+b>^! z@%0z~@mKcww{(5x=Of<7^KY*4tM6Wp8}Hhlo|15!r*wY%`t@-=zyJ2#XFvLgo#yjx zybMY9I9uz_w|A{=@J&?`X6JB14%4lXE+L{zCrlf+X-2{#JkIg>aDmda@u1rGO9I1; zwJBv`E=5>a0mirIyZ`w4?JvH5z$MVP*O%?h(=pFb?@t?xIN)P2K-2yC#<%0;ufKfv z%g=j?O@Dv9??3wZ%|HL=Pk;2Y{SSWPul0PgX}8tml4#7N$)7y@@PGd=+fRRrM}HXEodSd1eNyk}6r*2pPHz&q9>Iez|Oy?YxBwo4LDbQ(8m?9LKR=wrNvEvu3l9 zyyIOX99*5~ay_n>{o-|fq^e`NZ#LMknvf$FWh`=|}Cx7sP{Z<%uz-lg?MOCMf6sr7$} zy3Ba*+n9qAEK=wFZSPE^qO~rR2v@9y%+(-UW|mrQu^K5=lhuQQG60w3xVS53R>^*Ie|Wgmv88SvRb?T{nRUm? zV&9hIx6U%*k(rg|FXE%mSr@wA`#DZg4PR~bbT=uV^ipS}Gb z|CxXJtjGNNFMjpz^RMUoo4V%5^m2Lm`aJ{Nwn6CO^{a>r z3vZu1z5dZ>0Ov8KHA`oq)^^lH*Br!wU`gF1IYlTvDN>M}Hg0D=vW-~^CwZiM+k224 z$FWreN}0m!`Q_Vp-)pqzoSb&M-jbqUT859|8j;g_=5amwq4&P^rwyWSfBea3Kl^n5 zgP-8Xk9b3aC&b3}D%51KOsF(uJb(Tb6ZYTz3En;!S&XxZ1MlXOnh+t!55f`NmN@>x_Obw zMWlxO;ZZAq)2h)e%^&xjJ2P3N3=2gtyvGWNh)Af8gXeJosB_^thN{+gK5bOAp%&XB zUyw-aZ4CRzxTKK8%syxFf$QqfT0hUD^@hNhW8b#oZBQlz_RwWj z{Y4ne^o(*8RE|GuIsz1?Cho&n{<|E?dfogEpsj1BK<<_gihGrYM{sb{R%?3sR=2*X zirJ!?7mr<79JIz_(~4%uL?w2Qa};%lNu&uCE!mGN9oCO7i4flGBDR>-~k*v}ZK3#d0ONUtqw#$|?lEoTd{@|xiKls$XwRc}X z@5J$Z@VDPdB!`>bE)T?%^BhkP+uKWv*ALr|-u6%5;sq|o;^an^Ys*|m$V_Gwz&|6;<6O3`GGu1f7lBA-R7(OA zh5NSk^Bi|Dvz0v+HIB{{*18F8+qQl>w;G`Oy{>hgXhCKbB_Se$BO=p`MIwVh<-E!} z$-DJ#W|@N0pc8j&56osk8g<`FrmLUO=B$OgZW7v*RL1F5V_eb#|6OBg6|-Y0FDod! zwq#js`N&L40-^j1%uJ<2a5adSsxoned!)985MIV;VrC(pb5^?LLjlxpw_(g-O}P}Y z5&_MvB589>VeY+^JC+y#-)^^k-%H{z3KM{B>ouCMA^|Q$JKa$PRMkFIJ^>_0CJS%d zW;TnmTaQQO80*l%OtSUz0;wtshefP{Utz(0WWDMk>+?@c$}KX}90a!t#Bm1Bc~-k& zF(JD4@Q8|$M&&jrBDE7OGRgv5)eGewZi`vM99}_x7AoRCQ+Q|-BJx~4fCU{t??`4!=`gDX`EBCrEqx^1F7~@cPoiUY~QC)7}YebBZ*7xjDIyp(@AiwqKf!Au7_Fxo3ok zO!H)lnUs_>xbgmQd3hdx@rz%7_ub16UOkDZ65DMgf+?i8IR<4SG0sCp=}8jYK6-fd zJCB_^CcQHE(}WXS0~k#~1O+bYI74Z6%0?ciNOTdpfp3E6#Py2f$iv3>-<~f=c*L8_ zrFT5`>Bo4v?!93Qfc5bykCP~Q>lmkqK$IyWBhPuxd5+=k+SCJ)h0sSNs*~}&SwXxh z={!$uI?ejlGjhx+Qk0#%N3{c>F=j@H76=5TyDk?ygGt=2j<-$K%xn5s=c;Yn#~d|( zF2`!g3E|ONn{&>BezKH_wid)d)CGN+BqJ-WmXVjoOErG;0`0LXmkp1tsi%d-#TI+r%$RS}iOSfq4 zQZ)Dq-WE%gm5JDGGPk@-5pu_vx;eF#->Uy=+xG}x+oxsU)|9l=o!;Ado-1|0Ku`kd z29~im#zj?VRPWCD4|jV1!@)f*s9$`D zn=STlF)*e_Mn#C-oM_!4>Q*(*K}6>`-Mwk6JEP_Nz=CBKQ8{i${m9E{dM}YzRn>-) zq%w$wg(=8wim177_q0KkKrEE8N3LrL(TeJE&5kN=U3oVmZoQp30F+U6+aAo!rd5w) zT|Sz&;?;==kiEA#XZQjLXJ$>q>O_ELpIUQxcQXx}&Y zSRi*F^#s?gj+qle8NF|HDWQxp?fo%E5~tWXNVqjc)E^8RqqPR@Y|aewXuZGs_ziBB zw}=AE!$(0Cm2GyCMAe1S@%Y%F^0vFaInx@Zu>*<>GR~zT2KaF zxN$bH)8WqoZjWuuVdOjLVcVdPF4K-;KE|xRG>Ay+z3NJtASyQO7PqZkcxx<8MCW;u zM`Jn7Az+Wz6v%T7f>1(r_s-Wjqo#zInH7|}k>v};{G3&lF;Y^@`6Wf3AvGF^+f$DJfi%xsk- zBgVaZ#-|xfRmYrMYkkQ>#q?ycun#&32;)47OW+EK^xlWf>Zd6&13-z%^--#7abl`A znh!d5O$sBa8gW=DjlN{XQG}jKkmR~T1rZakJ(!86&G2Ae zbM>Y)&B_`&V|9>Bo5i#6%sM3#(-?Ul|Hub4MvYNd#-*u<5_1(R)LR)5x9hFu>=oMeFu-lxgervspE0a=Hv;=}IuwwSM`p21zP|L#x z6%KYr`59`36=qUIMeW?zL?Y8XIC8b0@G6=gV`ytc0l;i(YY|cD&QUirpqMXlMCn@bAr)0)=RJ&IFO4_O9^!c<=J)p(j~=p=UsaNUz? z1XXwN+HYtL#-+7(yO#aF}s^RMlf-=wiT=s}rHypz7}{Ra=m5uNte5Bhk4F#i5=5*?%QPXPB30Qy(8k6WQu+KHa^m9+Z$+C@<8ho|NN-4tIYXjtoP_fj z8FBB`N!^GU#MzbIEtOQ7a67Kg+LT51?TOCJudegk=l1I1;c1^>5NPiy459v@Syu9J zB>^k0122x_z`J97@%{PjGfvB^^GuFt?b1SKX#c?*`KO=6M~Vl|9-xyCyGWy5&)WeP zBr*oE>f>XWtM*JQ$e2gaoY&`<+sln|aSQs^W$SI<*npTdcJA7b^XP3WGb;#{=JSZs z*2}r$RX_3}dVQY7XS@Ge766+jO$oH3uMwqC)%dp##bafI*x?@_4gpj?)Xb`Xq97&5 zan|uPqW0!xcrUQcokh6f8^XMh7%CCr763A$J`1Jw*Q9mju7m>_=2dNw@NL_IBF(^5 z$KN7KEwe1rMwNck8pXB>_OA35F_}A)sIqWQ4}eNyN?)h@iV@5?RiuWdV~nkD#RDc# zW{Bz<(0UbfwL4EJSXd!7`pqcuZ!N7_OuVS7+7#i+2hf78tP;|a5NiEwsQ6@?{Stfc5Pw&?aNwu;U%Ynar?h)Q;@ez-@}> zh4^vv-jXPUo<4caZy#}KKvEZd+|YXzrjl7&3lJr?rr<^iy1ww2-+%Y-{*)TO`PY9~ z^ywJhw+4cxBhXck2tvm6@MJv&$ zB%fZUpuO4T>5@!=BN&Q|G2=R72+fG^UgooAi0R&N+!t*q&OYz$90_H2uB4aZzC=Bo})&BAAMERg1|g=ct)z%~#x` zHntUQ21OO8C9Prtm0Z6HnK6+Lq_8g2fiR&Ii;BC`n)B3lfn?^gW{HSRGoK&&vscGd zqB`7=be`wFZ?(jYG1f;%q=pMr@SD1kkQU=sMGN?p5p8SkzrC$iyT)9FA-C(T_pQ`S zCJxw~u8mdI%`(@;s-k>jj>;lrZP}Tv>72#|iDI5%+SFzhO7kk2h^RLYz`kt&#vFA9 z_wWpiIcvi9A$`URBHPWaqH?0zs3bhwTFcexxJ1c_z#S%2KA|l)-_rlF0H-Djwq~$Ml@_EvdULA?{ugQy0%f*7c}DA+@P6OWez*+$*<*)>|b`%&c!4 zC+XG!_UWSVnKt8L+o7zNe!GqY+T*tGn|=2JJ6J`w-EX&fjMkJlh48RbcR9|3o^NbG z6EN{(M?xC|h6sr_doWGU@5YStIG>5>`uKuI$#G0eX^)@0e)!=Nwl-k;wBvGNFit}g z_`o>vt8c#h%U{~d%jKt^fHmA__;zXOo|J)9R&d!RorLIFG4qgHxt#+t!-ip2z89>y3oZ8o&^FcrEC2PA012nL5>qD3D{$f(h0!f0(tV z%nU^h{~|&~hs}~?FZ<;T;yn0$~%pwAI&^R6t}i%7G49yhYd6gWkcN46DAneaRhnQvDVXmHzo ziPt__m!T?FP?fq2h?HCUA63yxpw`+PqxI&FX)`Iib`R@Yw`uN4uvlzM)WTgkvWi=` z-b!4dMTQ}jUb$k6)TXgc(8SO(M3+%|-I{qda*M17vK$xZIF}fQ)YgDxrUaN63zr@q zVPw5^P?jIK-t{_=)ax77K1=mnIwb`HSQWc0LJXy18?Y7hi>PW+>i(gsOVY)%a8$(} zA(J>!`dEvM>WUFnI0HSV@WtS6?D!`aF>pEO_(iLx1$(0!Im9dD3rX7^bEwf0A zVA{}Nh4*fl9Z{s^xwhTG-ok~WDXVoF;+>Jm2ctnn{@m$9ar7r#97HCFz`_PBwK!jm$F9Re&oqrj<*@RCU`nCT^|0 zTwi+Y`@Y5f&y{1RX)Bg~M7&&IM0DFXo8}e;i!C}sB5OkuAtD}U(K4j!Wsc)uqTc%l zD^AJRu*!aOr3=e1-c%#+^XmJMqx$B`*>ML+<(y;NdPdHgJy12yqCiZUpv1$&!<^HJ z+>I9+HR_hLrr*TZ+f`T=h=`?X70Obqa&JU0FJoyxEQN+g&4LOmm#HKqTwsW<-J;kk zW#F{F^$M92bLnifh$gFiyco9ts=FdQIH|Q}?vW|X&o9@@<+5!&r{R8|yIZFuQAOfu zL?HCu3J;N-nGm8ZAI%+{TJK(c5ANRjKSGi+Q;}BA%d7|(AIG7h$8k0-*FLJnFd|0< z8ghYC5;)JZZ(Cj8Dt=L>C1x&0eCutDNeMGkm71-&J97}I*4f_La^<>_5LLUOP~9s* zuzTt!B66naDz~UvuJB5ymv@MW%EwhMv_Mc|E^>fXTR=IZ#+55h|Yvqr&ZA)f%3y;!Ir5t;$m8^vFiB-J} zb7q)1F@v&DRP|-+g{nsum1T)Mj#Jgkw_X;tdcUeEfd~j3=h^NKG-S3-_gAm`!>hJ! zna45bZ@&8ayRX0ftVJwZ3WU@eGoQQ}fyfq%!F1wl8IfR_i_-Sh&D~2Kh zDwT#W{~cP%?t(c%jK)YHq7)ruLJ3KL5HmR888^QNNVj|+aok4xuIt+rabhMJV{FL; z#@>gbnQJH?vdu)TP3|^$q_nkN6mfeX=$x_ ztWvgVrmE*SBciu%?wb}VmLh_Yt@k;mHf>$!^l)RM%4{dHi2`uQ8Z+DrXlrL@)0zcTc9f?+B95m8m-U`oWjfnB^BOobB*tzUPvSosDj z`c+yk!xDgdAXcO@IE8x6i0ZNkW<+pCk}|W1qAuOn^Hz8OcL$`*RONuG@sxW2t8caL zwae-Uq_1nx9FvJt>RV)h5J}3dwQ|vw6PQ(q;5O^9!_2*RtT5E1YWXJ0a8RNyE_XSr zw{AXdx@x~%-tLcY-ig=8bM~#u8BFPZ26PWW1hh^R6CMoTY?sz_F z5cP%#WPl4}ll6R|TA*art{|f5>coH>5*ft;kiznU7z{8&2?;3B0u9xnEgKQfx_oI9 z_ZcCqIFGS!8<8ZJjGS(!BBG?qHqLq8kU;@r72%W&I0M3p26zT}#es+u%qv{#0YNn! zRB{6>2!{x;BD?FVkp{@RU0EQ4kzfG@2!bZW<8yQUUbnZ$mc2o`oYxy&tvxqiw0#fVTJC9Lr{aVCD z_&f&_RVQOaQujl~|c69MwvSdrYBN1EN~Zk9Ykh??cI~07O%*MvBs1K~UAA z8&sZ2Sb&TIAJzb}8Xc%weWl}D7N)?gv zhe#UHePd5hk)U|a=?e;9O*VnMt&;V&%N11)nW{*vgX= z@wRVfHqDBWUhcgQWb%Sg)<5N5O(J2$y9a6Dp_yU6xR5}qq5me+daxjA8zzn=?akchVoyD zl&}j>eTNC$OJLT=ubN2eDA86+mscGo5Yl?<7aJzbs{Jr?5nMKOK919DCKIcGF>eDI zHqNBUinecUyI?kamHD5(r(a)@icQcGoDc#Lm_Z2-M1Z*}vEW7W4Wd9A%;8C#qyz-g zK~5Z0Ms^>_fy&xXJKw(_-@o_ouX&y4_2f+f^!>uZk-1$q&y4giJCC!PPTXg2k~U*b zVZt!8L}|F5OpGRFvXZUoqtd1jMmpL${D6V_h@uLMy)I8cA`G=_gkw59Fel6~C(eoL zL@y_!J7VITeL%mS`0L}*Tfgl5YSTB3p1|t7F?Y%H3Okunx@=psbIf7q7~?o&Ix!Qs zX=&3{CEP%C9B1FQ0ziGxQR{KN+crW}Ti?n`Cr$3M)e1{{L}B<=vl&qL1_GF=_g=UG z=6mI;EWCfIK=nC_NMx=iIFI69%hI1gM0_7gt11$`w{71*6z;`Dsdc|j+4G#0xdc{E zAJt-qY^?#Py2z@msdeAn&0X%pn>qo{F}Okpx?1juN#(;3J1U1wgen&(fxYDG@^*e0 z){5|ARe9vH-NUL#b?H=0#7LN1b!*aHY~Ok>VWUE6bF864Df6{dY<){YQ!RO|sNTrj zx4n>{^_%17;~EZqg+zXM6GK?%o$tn znQ@+{h`f6B>O9W$B{i~ebsyDb@ixm22KT zu~-_qY6{C)#< zL}uNK>Ui#k>bxdK`Ex-4!yV~0+CknsH=bJ ziW2CXRGWeU74&VbC|eTKVy3F5$n*@NNEas}c2BbD;Ylp1;uMx~oShqxV1ff4$b`^R zpAsn3DtO(T0xG4S6!#3d4-haKA^7}F*&Fh?zH zZfIM>zU!vF3oOg1(|WH#sEurree02-B-(WxXL)`Kt6Y;lb60IXEeXPso(@x$2)eVx zIimDWLME%!BRkC^V&C^fhObFL4O&}kEL`A*2>Niks^_h;flV4y&gzEK59isuUa$MM zXJ(kU`zONY1W~%ziK;ryhzjwvH1{mwr8)(GyZkG)l2kOc_6!hFmMRm)HzE}4S`zVL z2waz;I^DWkWUSF()=(tPMja)O<0#EaROcAAft519Muq@#y)15K(*r?F=~*aTmYQ{V z?a9T9t97mR^?tW;6Scj3u`ho{R&AAh2K^LbKWM11r9{c#<;(Ehlys836GG}VWT zc(eh1pL|7pcZ+Xc@ZD%vM(%Kc10p1XNI!;1L)bc)*G}Qfi2x!9BMC-pP#g(QaEVu3 z4Jfrt=Liyln<^s(FM)T4w@nD+cGHVSy0%72$Mx2FXKk#k&4mir2aoVfk2KHrw8JOD zF#&`d5k<}9gn%TKj()*R7{G#(rGgOvGgiKL(Jw)S0BX`I0_qR~6B6JAF^EZ+U=^MQ z>c4fIM1OIeUp?nf9@>u{{Rc8d-EYC6Ppz~15owu02-soYfAikPRFNYo%=gQF*)QRF zxm;o%nURP&3)C-JEvpe@&dX&t_ow~x{`vjF+cBFNiB_DVp4FOfm*dFX=CIbAwgRT< zd7hOy$jrbRwpEy;^)|+!pru2IT3THQ+`ZVH6~prBNh@nDEX0%^&)4f^zts6Xn8B1D zC}Rs(c8}{BW?Iz-kt=>wcai$kPqQMBs+R803!vK?XS#cD{X9>A0Q;~N0iach=5-k> zIi&YC#uS#s;=Q~1wr$68^wvufEYf>jaVnJp;5^SnV%F+H#b~GvzD~fU2Y5tbMl*w1 z5H+6EIgIG#j zAaG@W%q#-Ew>hnDokYA}_TzR_(TYJ7W}~!JBI=7I<3zmmg{he~0nJ2HwW{C1lFR^9 zAxHh~WqPaap)gJ5Tr{%7mwH#hUkzPF~YUVlQmjhlC&>v{Z}fA>HC-~P}4$HyOk61M;a3C0NK z#)I+QY`;0@-@fD*Lni4AP)7g^C?f(23`d0Yj&m*Y?u<3UJ32$qP7D%F8KK~XiF zYr<@fNC-$62Dn2Kb0Ww1=EnJi?IU?pDL*#%jMUaquEgqTuD>gxs*U+PZ|~oK7vo@I zsK6rT>}`W=2)ENBZu!FT?xi`w0$?am(jpQhHPitM>Tbu3#L}P$-~<@MmKMhZ`2C;v zxlY|$C=m>9@?FIH8@@^T=_7s2%q))&*aSN}4IsD)X)|95waAo4viA%e*YoLBcbn;R z>)n&*v?Q!~0MW8?j@f#jb3R-yL^S54g3$TGIlFnSL^W9iaJL{<;p4fq+yt#yc!?@f z`$~U&SnOx!NG#SKbM+Tx29iCh;5unRL_$@s*Xw1!yng-qdVMMTsi=ssFGz%E<~^00 z0M2=Cy_ZUXyDkr)4Dn^eSJ9$H)lX5<%rvVVg9a)2nE(EHbT!h^sGRq3Ko~I_~G2||x*84Qa zs4#TBh_&Z4GbN;YERaQ8D!g#-t%~Dn@X&fYj#HS=ah5(c`~u6+DiFLChE9R$tIvmn_%I6Yb*Hb^FFfHOuW3jR7-2` z-OR@rtdf~_o<%1u>*Snv~AKf!ZWb%mwArDR4_9VZV{*&yRxFjSeAdPQJJ<@`e!}-;VZOM zLRO`(-M!i&L@Jsv0MuBb;>{#{+4nLdMFxX~dCbYu(qmR3Qp9-<6rVpTNyqMKKAxVQ zt}nNJ@4fc|*eoC`E$%fy+8Q#8y?VJ^B4Wu(6*eR;JG%&s~8BOcQ1I1d*Hf-au6C(Z_kz#G897GW=YFpsE$Zz4f}jLTwC@v0wH|O4~GH_6TNLIET!Lv^iL$ zM5iRQrpTpm-unyL-KWh;qWa%Ga1!oCd%p+zgP65M?N~7dVy;6~6;9N4TPoxnv;JrG zVT~~&W9uD4i4gj5i*gatrbVDC&r(&QR{BI$Q5kgbm_vwlLARJdV-7bjD|4=zDMnHv z&Al?Wk&)rrbdJeH&o3`s+rz_y*(BmBn5?%cI5K%1zLFBvMz3X(&df%QnN-`fX>L`# z_2$h-uik!id;UCqkmMI%ef`(J`P-lWr~r0^>vg zN~nXBWkxVEDAP|wC1(8Y*k(kU9|B?`CN;Z(Qne9DjuWUT8D%DkU?w7w2@eQmM#4d~ z?Yrb-4vjOT1yPbfSmre5thc^=haw^kRr3JCI7gh``|cUj!NeOUCJ-*7wC@1nf#^|T z6GX6khJP9&aGnUHXIlAER;W{0h`2w!Mi@)uy#on12(|uz`YI9FHn=Hjc9WEZkuU-n z3A}f}@g-58^ZVybKZ{R$ZkmKK#@AncbA5M$se)w-1*U5LK|h4zHprS{|)`&?WU>yJ3{JMZ&d$)P>hs;YBZ6?>E+s$Q$ebhlm!31r;s+L?s4 zqC=buXzax_ZoS=S*#M&RR*Kl|jfpM3S3Uo^?{`u@*;@n`?$-~P{k{LlY4=)z6Kdi>RI;y?T)eZ8SS zK;6waKn!>Q839g4wciOqNh}hHZNn^qF(3+JcpzM|f?vQeCh-hMq!|-u#yscNdr+ng zA*N&y!i+;KTy|m+Y79|w#BfqX4Z*6yt7;M&J-&L__g=liNr>>6Hm}B_%o(1o6I)Uy zgb{=Y?hVAgpCA(|N6`QU;nN=ZIdQ#qMPt0&QxkNgI}JnZ(cw2t)I7- z%eE(H%xN|W)VEe1ygH{7EpJ|(-s+RM{3EvRUkTWpH7z%{is_8=+_wE;-;Z--WRTa% zNkobS8tyfl^#w=ZT1iU9jdC#no{o~d$Sc-E}u7g;vtQ00~pihy-_sF=i~0R zz*a34SKUr8m*(=>^PO;Be`)W1&cSy+c6qcif~1vkptea7Vb&5Ge!C50PE(cygh*RE zj)RDMZ{{nRSxoN=Xw-O|2=0M|G*)T#fd!Bmsy*CmJa~>#Ck_weWl^AIlcwZYmF0E% z(AI?cJclq#=>9Jf?ioSFsJ!PP zm{A&FYjg(>psc+jT&}HRfs_#y1_0q;AQ>zmLO8UuI~R&4%6*%1c?6O80MgGX z1T^KR-Jf6N()qCigbld4eR+_z%xvXmK8dMqn&IJjdDyq6K5gD^?V??< zRueN$Cm_QB3Tb$d+!0?7#sktTPEjWVBs^V|WWUt;9PVHM71VHm%i;!>rN1=>YE&N7 z`x;}UBM1R(3Ic+VWxEm(BS>?e-@N2E&-6-j&r}K!lncsv9_Q*pp4Pg&dj0D9{uz2V zRVTTHul9&g;Y`%gyJ=mWhptMZ5^f18&J3G$kU+_hiFYGSxcyXj#}wDrE`&mO&RhPv%o9l}c4uN-kL?py@~ zNIR#9?Av~hQ3z|?iG-QaRL^tt-dQMOk)X_@xW80_Oya|Awb0+KH72=ZHb`6Zf_b;5 zEai+^)zpB1lE^)ZCQ`}-5rODKK&1T2vO1DABFX|#R{6tbZ=DDXEe3FX|H4v$lWIdK zBF2Z&x857FrE1XJQI=>z)Ar%bt(A%ZCW=MDaH%fdC^d~`+xi&8%`*dl zO`FqHMO#Z?+xoiJ)i5rSm9a`|iIvM!oS8M~m--LOaD~FbNoF3Q<2Y)|DZ@jlL)D7P#C5Q$=gDlAty^2G9Zy^H@H%mbYK;Nc-JKbrh*Xt1ZHZ2x zh}^bb@P@M0mZ`T6O0BgyM>Uhz7{4ZRB?fN$UWxQFMO5KhSq$sG84<0wA|c8h`I!lk z8UU-iKR!H;Im^!Q`s2^2^_t|9@-Ke%*I#}AEtr@ScAm!wX7sk=X(DS)WCjbGf*AK$ z8xmk$qwG3ky2BiStf8?7Dur7i1|@6_4?8X$TSM>Y4cmsk$?I2mx}Y~O%j*Yzb%6*T z8#-e;JrBGaakD@q<(grtB*V?-In#5V6NJmtWsZ3F%}Y~;r=1Rqd^zJh!wg8?l$fC4 z&U6vo8!Ll=;V27Q@6>GiAq=`jdx>o)!Q<(XAPbc|VqRCn)N zuW+2-a}P~heW12|ue&lzbN9-kQtSO3gHd2XBBHH#H?O2oYwbKwkL9YWrnRQ(;mB-F z>#etG`@R(fs+JC$RzmkV&hq=2`)a^0Xe)Ca%u7UK5p&DT2=80JkBiraR9Q4_^|@Fa z6oAHDxac}9u1-4U$kf)RRZLY`c-pM>v_7P@RrIZy7k$F3ta?tXMQphlb4f9!BgGv; z%FNTIsNCz$y!Xy5V+_#+|DY-Wu9nXvtJ)!z4@?RvS{)OBG1qEV!6_#4Fc6h<+COB0 z@At(D$=fs)NkXKb=g52NLMnSq1fp|{@?>k%(zxcB|KP~`zp`Pp)@l-vk?v6uJXKBL zE_Y@%G1T`;AP?_buT89kLQoZLQP~C}9GMj>BO*~zZ6bm?8UWL*9_zn%YmUqqV|s<} zY66Bjz7%*7z4wB7l+hlUnZY7=&6DDuQJ*@AkT{5Gv+f_onI$s0&Rd zh^h6)BE(#n4Q={&WSe^}WsOr<#OCa+7ldGrah^l&DazKGwiRE})m1r52E9K_vJMED zMXia*>Z?hFHU;CuXpxv!V@CucX<>1(x_J}D8mW_1rCv)pjmX>WRy+5cGcpTh9}(K* zv!DFv@#(2ZJlyvG_=~^!_kZ@+9ztNFx&Pj0{?pe}C&)lmL`ZA8KtRSaN>$;o3Nlc2 zR$QJ6uJi>p1rrEhf-qV`Q>ZM9loA?)<9^((_%x?G;1B{QIPYsN^UK5+SAXxt3ccrG ziu6U>-nPAKYms@}PMe-Y`{QGKdUEQ+VV1IDF##ZjgTjd>w6skq*Kz?CutEgAgMhXb zG#kQ6f!>m-hzp>E(h}S%O+o>Q^#d*^ZbBK9hyinqL^x1M@&G32hF94?dxeJ%L17fC zR?p2dvM8tf!%j?z-1;V~O`69T2~fewMH8swt(lE+E+gUsiL<+pbMD(#GE0Q3C>V2$ z@^-FiA+t?$v-(5zoA-$I`Z#B1>snWY%mkt0v39R#7;|iWt7}1-c}X;pqbR5>EL{5M2hrdC@5;Ah zF&VR3n~3SSotX>vLwx`2BTH7PYSB`d%i&rw5wZj=2BGk#nNdK+h!|t6)q|Ots)}?W z=^`?7zicdWob|3PxvvH`nW>_s$=B~!P_5>;RM!cv0jpniKdX`@Vw&e5P-}Xe2N9W@FkkkIN7ytFnB|_< zk&*|k(od~SxEfxeJ5~^qoqyU2i%uBdOLaMGV0YC_Hcc2mh3}&l(p=5@5ETnQIFKNTfVgsp;I_)^SQBe`I--lR@j>Wj~H`KGa~-r zEUMeavL^CsL=KPM8-pSegfd5zBevx7)>;kK`qmSud;?d^7*SB?D$1->$9bF?tD^zmcJ$H3#CF{ba7y z5-4hFE$($;s(^u+$GVqfE&e5UgXnfU66uj+4xp;BYJ;gfpx3%w?*%hg*tw*|Qksuggnwj&$usbtX=69OSDsfqxlPr9eM;)_%`wb%spuMzz0+-QlUaYLLrfVOQP5v)X4l<&jM&f~OEwUsDFNa-chtOgPyT)}2q zEMECgzEsCwRdMq<4UzRpXXYXd#sV>k@G8w-x+~Vvd0`Wod*2E|u}W|W$L&_u*b;2& zDzkD%M96GiS2uO_{gka4#LVY$dbo-*OEIBJP+}H$E5A=Ir|!n63ll{|BC4pg_J^z$ z0BB9e9My2Hs`thDAKDiFD>DqD@;Q7sO4n*$Oc-JAy+;O%)cJkdtm%K{KacY`&$Awj zy0rlil{$$;O%#Y*)28hl=ViZS*)uX(L{!EcvFPoE7p!QHlx7)4xv3)SIYF>Ft8TAO zE<}76SaOV^Dj-;)lU6H$tvPtW!s4 zOgFy1KmV71`ybwY`=a}PhE0mOt7(`W?gkHlAp~EVw0C%{-Y`LK_A&R1|l^dIZ)4+_z>)PZ7xV4aYujWM*T zHdT@H9Jk|IP0Z$wOcph_ecx(+*;^ZPEGrK3j_r|Qvo6ya>-x*WW1Q!CM!>^KxE^m> z%^apG#MD$v%Z-R~h_x9%2Zwr$(AnTc9GN-}7z zF-z~g^+rr%%+{3ZzgkUse7WoZRYgYK9wMV6Ty+L*+Nar^LshHNV~Jt3oHFLN#sEyc z_kx49){gW10O;*oZ@ovx81v!sP*S0LB=F&y@?ZS*54xoMPKr0Prs@&XiX>Ie3jBMXx8A!p9dp!Wxp=>E?|@_GrY(`em2J-DH)Rs# z@T|i0ss`HkEhDGTQm860QC^6G-qeW$K=o(DePZ6UO`CPzFL}{c8<&{dzHO0l+-|LR z0t((4nIcl(jEdf;IZ^TSdX#(bZa(JRw*EmK_VD}JB$3c2@Z9c?Y3Y%X0i?}Y4#o1l zx%pa8mf%W@Q>62m_Umu-mYf7(Oh>uX2rxs?IxGvp12E8Cq$0kL z!tr=D&2paU_~av7r}`V)AQ!EDVnT0iU5QF#+kSQgC%9;0Q3F2$VK4^ zOK=27I9NE60O7XrCJu5-VcwAV;#>R6XMCG#%D(Ynj07A(7+%BeoJKXc7GC4-n#a^0 zX1)T374vp4h|l_$$~rK?CNf|SW-udbyg@6l(wKknIv#1n3!hUTT312D%lFrp?_ZAF zsSlSXIIlOAJF}8#%*jneSVgbLvv3pPah@eeW@bj5cC4q}Y!Us4q9ha$sDgD~no?%E zS!0t!2t^pqj(HNumCe6z_K=pwHW}+SRdWE zWBckb9)FMV2V`JOAYgIdA!cOg&%gKo^f`YoeC#*-HU+U zP*+*$$i#4f*5uzD;FSj~n^~sMkZu4&1w>(ncPFlmS~yQWDT9>JwLiRi++Xdd2Zh6J zp2Nn_%Vkbip}qIh<}r@exAb7*39I6YX|wf4;JC-c>LAGXd1FLqZ|UJ?tOP)%c0v?$ z;X@~OAbaZ$pVL@n4JmV79L=rwPDICXZd)f3vw4nLJia=Q)>#;Lu4+cGWSMv8IkmN> zN`xA8FGCGLLMkmHh)``hV@{Zh@*K9hNSD=si2rUwDqg4GNw-D%Gc!+P7G_kv1QzPN z>d%r;bbwH4)20U#qfsj>GZN;0o@Yf*GxI!0-@1roB9Y`FBH{7)_;eh%4<@VXd95-2 z40t*+ir&bu@6Z2sEYIqURhn$f^m4RqF;ZGU{Y4S_SS&OjxAIP(2|vY?n%GjIpYdGV1$Zz9!~-^Fc0{N7<{+bM9NOtH%1PnJGCV zD<@yww^?MErN)#pM&;L9Q+*`W32quO-(!-J;UXO62wv8y9OqevC^ysAw5>6ZxpisG zGR9Peh>Y`OQ6{$g-wvv-Gnj{N+BTVE%)?YPd=UF~X>#KAC+0)a#z2_9g^DA=kala(`) zgz3!_(y?t&LfVReBw!&LUx@Z45Li&zQKVR$V3xRf(fk1s3h33 z7nfbEF$%od+db}=nAC2GFP{0c?ef!y*!Xt433IyHxuVgKMvYlH&3s)qSHL#BqQ!&& zakk~Z^*1r@|>mWlmVqW&$%o&g>@QZ6u8Oe+zL-CdY)(Gy@Z@NtD`}< zWCojyCnTa)s8;4N&dQUm-7HrRkcXR1o4)N^-lHMqGcJF#JGmM6e!CqXOtf@oQM*UA zO)rlni@R0ZX`<#FQLP>&&ex5QNX$*j8CCfVN)erN{MH)=65H0sIo-Xr77>xb!6k{B zJFhSS%vX;`C9X@9sB30qAnD$_68Bw)KS+vm4A83eF2{L<6Z5P%n{fF(JR+*AwKgii z++z$?<)%brbLH>B_q1SS>%EY=sycHr7DZf$Gg6c(X^dGaXE2uu8mp@=_IQ#=AJrdHSn|{da%uM8phOB0|6#fX_Es@!HGz; z@}4Pi_b=c3e?0s4GklEw@xhfn37U2LG$L(yJ_I=9; z={n{hAQAhvM?~Q+GNIazF@(9bN^en**S zL228%yA#+cDVG}x!E@Sv*#oYua~dyZT7_g&SS%7q5sp|{B^IX4F^52U>&1gIvt?v8h(48SEOXS| zb5AzSrWZV7p+__8d|y<(^4C_Grr!f_l_K~M?BDi2&I*%lDCl)qC1!rh4FgsGS;q*V z9LR`FE}LEb0aWP5Ov{N>PD7E5SXhxjL=@1X9>H|4p-8>=WxFa`eQl(FXU}C8(KUb} z)ZbeoDN4o2tbt1TnlqD#%|^+B;a(eTp=N66T}GE0Pelb^3z%`gi==1$%W<5lQb~)N zo~>QMiycyh?@?x?tVVSpiObKBo~O;;8cQi{fx3W|JcXJGLtCrE3y4Ik6^qSg!JQlt z;qVF!CJ4Rt$ROhIIDItLK%U3hv}MhBxJO3oeVP%hO2W$nwr%?ybDil{aab0oEHh%J zFgNA&$eg{~fButy^Z)*T{y+TrdrnizAAR!C|Mma!fB5LrPh!Bo_{RR~>nA*dIz-kX z`a?{?eX+g^J}kN@vt_q+TbdOkrj=bb%Xl2Y%9$Ze*4zR>?`zJVO4APZRAi0Md z2()JDOace6Nt2)n0YsQ`yL8cV-3Zdh87!Rtf6o3qShwuD55v~9_c`BvQ=@@yG#W!= zA{rw>5`X~CA}NxRXiIv-e(W<&WP!7fhAts!kWG3)Szv`|ka|@9e$SZ&ahQ zl(I05zU`z$W@N@{Buc@_G&e^Np31HutK?2Gs1_w+0`@C+Q7YHfKajDNN^1 zmgyrXb*)n|rDbM^tV{GRYGm_TBw|X_zUC8s|G<})H#`taAxrnJg`W4oE$w~D9Al)$ z<^5-`F7KCm8)HUY7pCmpnMtb@($R*h?)zR!p(L3(|6zhtHAG}S@hlX9#sM`Y%3AB_ zvy?(bT5F-IDkvEhk@UbL6B*0}h{7Z(hzz+*h;#0vm|+M*Y95~Oz3sJBE7zVOL1qS4 zoXDi#;&X}&5|+dSJ#e@S%j{caW?()ZXn(?@Z)%Bp9uH`=+`X0(5kRis9@puaMHX3a zzKhOoN@4D;gK}qM_ zefZ#SuaZh~#6U4)@i{!w+WWvH&c_)IU!@<;Oc235S+q&W;D4YNkU!P%hGYUVxxR7Kqd-nlV)?;WXX9uBi%X7(`<`OY$%25@Q7jO27C zhM~0Bbp4oVEfwzv1W_@=)xVrzLrJIgl$2u(MCC-JhYQcwFy>nlqjwh0bdOovi@RL0 z8fGSwNXcX?@~Ka}|0jR+2evPLR+&%59=v(ycfRfIZ+X+33t8PcKm5eSeU@^Y%0iJ; z3$2w{NNt+(L@1feNQ{C>m`q^eL(pXOHfu{b*@RTMR=HSdUFF6Ny11aV(rKl&k|~K& zt)xm36rGqUk~rs{fgE*H>Q0%)f++jgukJtl z40%&YA48TIJmn-9hX}wnF=evaG)aKC#&sx3Cezd{N~&aq)Tl0WTIkjVtt+i3Sr!r@ zGjRT*I=eJZE0rl&AQf3xQkqFt6eK~BWUKiiU)<=6J3rYb;9RC=f8 z9^(t2|HPA@{ghBHi}f}{j2U)gZd*fEAklPMEVb@i1KFTvYI>Y|lt~EqJ2LRIwH}jY z1i<2msvUjQQi%z1IBLqGX4dvL)fP#j5DFqTiV&XGCxh1{iTVNUk>^$b(n85te%t4uB^vDD_mJ|~nY>kD1@3DxF7^A~c4-v$3zA!{) z=_%TzYb}s?X691s7#+tSINRfoDDH`f=^I4Z2&|Z}@)Ofi7b|8~Xdah5g=LQAYf8j$ zoUyQ#l97(&0K6C?etaarx?^OxPW1pphL9G#a7Z#xn~^X3w!0522FBY15R>8s1=KcI zwq?PMs7M0H2`J%p$85z+5h%_TAi4O&@{#ny!hMWlN;3_97DM6dFq4&1tVHIv@5~In zysCO1?lS@bk8)-(v8tI_Ev2_MddKJ_B9w`$dqR(Q>&vnLErp=l#}Kj8x{lGIPYd_- zWKLD$$kF=64SC{;5B=!h{hOctjrT7ny|^fMPPe}LwQu~F{-rG=hk89LW|D6cnu!6PeN&lup^{7+j}KZ(Zcp&0x~gA~!GSVv(CCT8xazm}(&_ zb6=@OlGF6SM25qf$U6y>0C&!8onW*kp{-MdI8kbmYNFn~_g<`AT&&Al&E$OlGBYkN zR#9H7MmwLMecCvzuo{UmU#z*5lt@idiQdS&?>h-mDHK7PL{2Dc31qDcrO)neCMrBt zPivv2(2bRD-=JG7T~xk#;u|NrSZG;rJd+xQlRG65skctU=Pp$%1<}y5FZbT}+4$5Y zKO2Q>Mt}8d9{YXY^&P9R8I_XHKK+?b{pK%@`%h%-q7*T_4;*(u2WN%X@brL^6;F+d z2IxQ{V(zV*96<>plvzvdt<_Q~bKf`2Op|!aFf~LxK~=?vGDVJOgsunJ!w!YVSXpZ= zVA{+~&3bQFmscWe3L6$`d6km>)Kz<)B1;RXey~_W|f=i)zzi&bY(G1 zMp7V6b(CVYE|KYD4EQCV>xBVGXN*y6*;^wb7O?|kvr=HDk8tog&#y>x#f#nF0)m9JnEEH=~b{8TGoNE9V`Vi25iMV;aD>-cTU#rPNaEzBe>#5lx-d zl;o>kLr-H2H7m86Y3u#s;$r$slRc8eNXiIy@-Kb>jcdQdQKC6O)LyPNkA5mxaU<*_yQw zIu77MU)D)<-&pBX3AT+>p#o#0Mr*`OX2eOQkSD2n>skt#5-N&4s1y<*JKgA~?ZZ!x zk3L10;pcA4^4)*npLy$BUQaaIcJ}@1y}$CVU-;R7aK8WaYzUQ1Nfw4*FN1`&)&7K-Fbat&-Mti3RjB^gb#(}7>e70L{<8J?4;17+hN^D+4w$|lNw*?0MhBYI z#~2+cwmM?qAu_Y=dJFeW zHg92J6&NOlk7Zd|C!adT7^7zf%@S^Dy^qm#k{mh4fW)Mfg5X$4wjgZjy~7W%EDMk` z@c98vSCUR{(&ga)TW^_(uLjqJ>crFNz%4|i)Zzg%JXtAw+uOcJ=27^Th||wZPai&7 z?@L`x4Zneih`HA45f>LXJYtM~y0~Db-unm_(Pdpx(*Qh8R8d0l+%AmX1`F~msa8v( zi}iGQbss$tM@Y+@wWp*ELb@@AyPDzb!`cO8={oxlLb~gELWFRE=Ma&r^VN*vo~%b$ zvGaD$$i45(e56?nVvuGbhe4F42Vm4%5joI$@1rLXbg}qcVcP%$hSzWvNT85jlG2BQOW^ftvl+6c>yY zSbAWX!aOw<#;O=V_{bqZm3(X6!_j36aRD>8ec!h8OezQ$mh<^+Xvq!FaOPYV^%&dL z)v`L%lkfgte(*Pc@!gf$X;t6GqYpp$@BFEM?Hj-8?J8BM@ZBtTsm6)YaEQm&<}sQ? zrAjS{AgLrWBVke|HOi!=PCEjwlVm~0ipagwa9WJZ zb-Zhk5*qQ^`Mhr%aSk6rBw`Usft4|PYn1L|c=&Q!^t9@_dQ$JT(j81xDRL zl2b{wH__z=UF6d{J=IQniZ&j5?9o5<@BE)${OAkn!i8gd`sts0=a2sK&;CRem#VJ1 z4G$($0f;(A7iEk@v(E;7*yaIZK(|MW4sB2ik{iXkKenyKE0Psb0b zO05-C9X4GeN~Rk(ZV;t=z~2sH7Lg>FYa>IyoL^1Xcof2l`1l8qY$-;}2mnXu9zsh2 zB-B!oWhcV!1290Xb*VKe$LR3-G5&>hU+DO2xo8pL_9v}M5B9Wy>GR22b#aK?fBx}Ljdo-Pwg=!ScT zUlhI*+zqpxi5-iK$mj$0FEdtA1k*w99nK*TIQR`9doV+FgkJfK-RI*skKtR}52pyh z%?@3lsn%N1AqYhP(UeO*-`_hz)MNolfhvZM}Cj z3*sOep3H?RpU;=S{tG|zq4&Rs`1!r=^@~csg9`rIHrn!eu2&o(YLUB3vs~B_cwWE!Y|`E0iQ_2HBIT7bjw!9`a(mR5BwLs%s7*7ixKa;_lU#o@L^bswBVVZEyR|Z~1mP zHytrr8&}W1=iNX0;Sc^&W~T|*APsxMK5g$nlA$5>F)g|xa$48XM;~KvJJEcOFzOK} zf^Q)Q8e>2&d%8FccL1lvT#8*s9vl$pj97PfQ}d&48OfMf#&e254hED^VwObITN9Ca zoiX*+%uI`dp#-f+MB}=@S~w#q3CW3gW|`Q``WVA8l?PPC%!~-aq%5^COWPZ$f~D5I z?^6haBt&L_!yveBfNdDlCK`;&He)i4nhn*)uYb#eD=v(lyCZih=vY z`xg;OIc5Y9E?`8f`sgEL7HuN+g_GyUix@&6BzMjPEW)A0L>UQd-qBO<&O|u##~48& z%vhelSRi(WiIH@2I-O!tO7qhU#HsgDN+|{X6M^Z5h=|~z41kHXRy9T265u=GZ5YQnN+2eig5|H2GTjZh&yk^8|QkP1MMV_r{5-sb(#XJT@c-vwOCL#_l zEQPEfwA|A@Vi1$_)a;G>my}Mu&nogDVw(}RxEjUCjwDUk5?hcb?R#uHJ|@}QG`o*Z zLc|p8ecNaZA|ZEzXR|qr5}OB+*?Q{+1^e)E-fk_+|L%|d;Ws`0c-yb)g)FCN_dfSi zKk|K7PkuoqL?JnG5kl>;na!-d2p=P9&d6iA_44fQX2Z_6DDJM4Z-@h{hPiBut{BEQp67=C*fXwwZIDdieE3M8)vH za+0b{@yL`lGT}M*O!&Wu=#Z1ZwYStNtYdUE%iY7w$SbObPScx?M#O9lLe#n(Lu zG4D)-N@>V9!g1)SP2vIHE$(3EsfNu+Kq(;kal1g#lyT^NlMp%wbZEltT73Qx^IZ^; zbzKSBf{7 zw`wpjXX4vsI!UN!2pFbz4b;(!#nVw8PtKt zXin<^tvB{cQ%jJExJ1J-vRN^#GG-b;Fppw-q)xeegtyi_FylWY5HXB4 zSm}D}@JxszM*%+$XGSeGj;Orc|-@Cm3`6o&e)eFj?QmAP9Ak&B;iab6d6>2Tq z$(X9~#X^e>AHHw2@6+^Hrs@2**^DLx)!|5`P2>rZXKXtqlPV3T)sSqMV^HtZ zk~)!~e}adSy!iIbuX=R6z|ORzLZ>XX55ITsj2#gypaJ zF>;VX=MaP^e_e=4*M&GJ+-@x1cHg)C>8Ja>XY>9&y1b;V(Y-TmjdrIVbnlY3Mt#ub zRo=ZzSNEwkLP_OmB~v~GS5jsOm57wZ&_hMLQ*#QUMwA@8-`}?K&~16i^Qlrlx0`kK ztM=GSU;5p@@AqDuY9YOP_I|eh)aO3=(GR}Qn1qEQS(Q{;Ygp*_y`4^L5|vU<>uK9| zX0El2KA5R4b#IL+O?BHgH9R-~UCUtxOeDhc0jo2fci_yucXwabMNN8d z(2u@ldM>Kn3U_dq=S=qU|QVkH6X-Rj1HHc6_&x44^;=IM`C_n5IZZnQ3Ms zWgIvkkaMKWiAX7xk372YXnT|YKMIsYk3MdXzBf}7698%|LUPCnjvQ|^S0gzxbI!lu z_tB;c&+}Y8L~ORs5;DU@#HJ66ub1Ug3ebP|06+$eWp<2XS;;I`&;fvAC46KmoM;h! zj6-{%_}-99Oz@x*s~Ylgmj!v8i4mZdN+P&{RW%$RIWXibM-2*?rBaFjXoAFh!b$;E zF%sQHzFc+-A1odWeC(z@b;7tQqE?I#<998EMF28hYwuvM4G(1fx_hZ*xVOEjh_D<( z1WE`-L|)vufEZz*NlmqHBZHPzzx2gV{l+i;6Tf%Knah%oJo51W<`4aIkH7Y{z~gBQ z3D14>tDU@&5N(|(xESrbEQLg9>#^^YL1ILQENUrK7h6{nCXYPtv5yJMBvT7&Nt@HT zlP9$i_pa!2r}IwR=2zP|Z`4|}CZ$ZhXCbeA{5Vuj#Na`z(L8$2a>4ho&uAr!-;B&O?0mu0zF zO0D4;qx<>1UtP8Pm*ejJxO3Sk{BqRm?4@x0ZYMu5@ z5~Mm^^i^`{{6L;wdYeu@XcJBjZ&#Z;ebcvn%bVW(Rp)J6mj%M^kACcnO;Ah6OxTYn>~d1vzDgVR3W07eE4r+ zH**$;WG1EH9496w)p^s*QXC>8Hbsq1ml+5hiu7^}olFo%M|de{M^1p%c;b#b4-9Un zB)F`uM{TA|3W#@rl>?;0D}dHEP0Mf(_kG)Dyp~P9 zSxh1mjuSAVg6t(owqzQ}=~&PHDgXTTY`CfKeY9Of62|w;bzS#uS4HqI!R-|pW`z*h zIEaW!Ey9clOkAoo>#kUMHtS~2h%UT^&=0UEKFWak#kfoWCHQ`2s0aFEKBjsT1rsFh<)GcviNW-#?!Kc zl^k;6Y`x(n_UQ#BI8Eknh0CE75oxV~iyplLm&3|3(R151fXe85Uhi z>0_ijKr?`Ip3Wjf)Q?`86 zDqf2&g(7*lZ#z-MNbWlkWdsE!Ckv~ZRC9M$l~UCTWstiVx?PF(PLvdb22nM_T9W{{ zoDuh6!M9@MPAt_5=R7HFDV2nTJ;uIw;Upn75f!S^w@t{!%7nbD*$eK(mz>yWCypfb z=pic91{@gCo0LLgv=j=`F-Vo#(Ag}@5kW-@p9r{|5P{lNBcbe#QBYXXsFBnL6^XVB zRbt9u)c z>J`Tr1NjSM_~bTJF=}3er^{=Z(WIs zSt;f6d?hUNsWZj+K-1?UlpJGJR8u9A<;}y+|fd?sP5&ctwlz^GKnoRosxBPq<3a=v*Y zlbB&96Kmc?)W={J6-8Q(sGvs|@GBFW8VmQ{QQQO(RO=1VE_y7dDk5`mNFQ?yiJawP z91`J(@xiWn{+ShlupJDo0=sD(pc zNKAEE&)d0{+I;|E-OrntiYYNA<)bfo(XBf-`gYDX26KiJGr#EO>8&qo|M(L%n92=m zG2L@*xDPcIEyH(-y+We_P-AOjp=HcHWH>76hTWpWaEP@lg86eKYMF`*kdVHa(ImJj0mr0ZR?|lnbjpCN5;6ky#Mqw zPxY%y9Dg8PD?+DF(xmIQm2#VcsJoa^B&kq#$`n;nBkwb47PWdvLX0Gz`It0?zOM^%CAz>9IdV=A?fEme8^HFgA%}Ls3<&}GoutM5RTCdCB+0* ziji|hwAPokhEI2Mcp?scsS6Nx_~4Lt%Q72u;Jq+4&{zPUh0y>g4O3Jm0>IJiJ^HX> zMNXg_GjrQpF$1w7A|8%OoK%Hr=IOc<+e|B+=BGlOy^SOi;|$Mh?*%h6#i91hWTeXioW~i+hZtvOGGRBmu7Lm@0zU+VGtokXy{FAmAK&+VS*j5C-e7Kn z#d>ZLOhBSCvMvh(B6%(}A*5yQv2td!KYhFBx)UeyZbS`S=8NWyjzo!A>C=#%6` z(rz4)uU3tcd^~p!gIUDHJ>288u280e$w2T6&U7mUc6Ky&5z$gBLT9@DwD{pK*iC=V3A}5OrhF37zDQ{%^+>|;piGlgh~$g8LuYcUS@5i zcaSdbPgC#6TUF^LH%R$s<9|OdQs zGX!j{kIcMrabw#y1i4!=5b|x`Zk#SCJ;Q~mF6G59ex$V+-7hXqT}gQ9K^G$j5G7*(FgUYE(5_Ct*ERGG$h)b&L+GmaQD2PeR?voqC^kyo*9r zXf--jx+qkcE-Kx)pi&4z7h)35-eT;;L8TBenaz5>Yj-y#naqLHM_=N>*S$DzuY+my zX$fAIYG&?9rJQcxZiDu%Q*ztd*4joxmRiX{>*?<~tBx8!yqa&o7tq}W`A zq>`3tB0+)(Y6MXPHD;_C#UOW*B%mL8@RIP9#8Eoi8jTthYvEp0imDHK@|pc7|IyEU?vtO3AzW|RotM1+?ce^Y$KTY?J=++2 zPY*HSqQweWU-;AzZwD6w3quNl3NICFt)m|TXA1fiP$p5#keaiu3j%xKH_FTiM|x63 z)LKNiw;?lj0?;VvT*h{eI9q_Uy>&C=8A&g_H%2FP=IOL1B?iZ~@1Pmf%!ecH$*h!G z&gU~Wh%tsRyilo%;-i^0GsZw56)ri{IZsqPv$egL!IalW&xleA;3hOQL+-t884fv0h>BG{;Cg21t@-c*kqZHY3K6++<3{VFk5NiNChHhZoFFg|*-~p&*i()^x(HX* z2|o~-TJL@GyQnS)mKd%g1h#!fSw}4upgQi-?gN2IV4(^eH>Rz1c)y?Xg;7kERfUJ6 z#s~2M*7|-#x)9V0rIvMBW?SzVtxt0eF$rvl%tyL7s9*zPx2`9+@J2%up~z86aXw#V zBxKYI)m`Gy$M?M(-vAo<|&U$O9lMOQPNjHP&1?Q7oS~& zc9}9&4NMOd8m0zU6cdR+v!e4VWro)YK%$wN+5OAQiyIfXrLZp}Yjk)QQBjQuPI=|4 zUiZ>hzTSBmLFDw0-~H~t{y+YWVD9NXl8^&W-WFco_@eTf2e0HF=^*cHb9W*dNrQs9 zR5~rBI*oe+MSC;_)+4B+L@$Y$6zVCX3<{@&)JyQ1F^iZ|3T2WC?H%qvWSTkb8lL2x z#@V%9Eglapar;y*E`UmU#_&A1(OA9II}bm6CDN19GbQh+!_kADB?c4w4H{Sn) zfA2>&&vJ3%_4eam{dF&X=^JXUcWz$PQmU4%4K-ty-g_-2GWzJ0i9R%}-~i-68^4&> zFm>TkLb6n5f)$5Xw-i$|pOF=es&g~Fc95wkN-0oxre=s=%xQGsQc8vCN`-h9*kQO< zQy)IYyvAx>NUj;+Imu=wi;OW?;ByvJYpo3*8HwY243A7=o;b(B4ze&rC4FzgGQt6G zz^{PHBV2V!$uvta{SfsM5it!vC`l1qV3^y8sP#t3Va%XRp8L>b8gS{daNBpJl|Tl` zB9VcHgiM-uRqsfnAR;&%aWY&-5E9Qy1(5$hGTaCAM86{>JpsT zJRo1nBmgg&k(7Je@%2+?!Zs0^GKzg70=cddQ-#JeAqoP<#L2$zJ6cY`7WCGECuZaz zCrV{aP7hZ$9|I;MEO*CAEmNW70oD$?RKiuKu$8n@tRR=0f|8)279kNdodt}Y#WW+( znj*8OWfUuiCO77uP7IEVlGMaKA}1hVrr~oro3B+&FVZ2vP%BEL``)J5gBXk-BwNDM zKrUuimsdA$-Pq1&{A%xmXZcd?qxR3ZxU8#f<#(_6psGoSik-am`-`F#05eE;8g z;~QT8yTA2Yb-h?h+3(+r5w@;$N6Kqoc=hyt_jBjlQfV+VQ%}m|T8UFRN9(p!@=lbb zObXQ?AJ#UZpxN5Z$7SM95S9{8vzs%Sk~cD=y%Q&yPzH_UvP9cejYiVwsomE>k6t|R zh8M-di}SGbWhs#~gtDA=FQ5G66JOZ&kACvAx}2OfGfx-mc^}{ZLqGI|FMQ$a-ukwe zKKT4MyygurdGW)xXkAK((=9!{`UUr&{iIwqwp~wq` z-iR3Jq9P^$U~zH8{K%!yj6c#De3VucXl)<|C?h*6)UY)rR8q6GlnK*o?*q>oQsrtX zy$^5uvM$*E@qs6vO%<7m)^6|EMGU(L5>XF=8ol2{NwpLR>Qx1v+}^q;9*U&H!=#7& ziA6^5hlp#aW+}!YJe4;D@}RX2RA4==+qMZwDK>Kq&0?mMZp;iha%KXtk4%_x`xw!W zQIgV3TkFMagqzucON*p<2J)$(5Q~UfD{?eytyqQ*!ht~IW#$G)AiG<2@68~tpiB>3JVfMUkZ}4Gi2`h$ z77byuQVPWRG{%5-VFvvZ`4}kWF14817#{9LtNYmZZK(?jx4i|?^i(Hh1Stom1Lm1* z7>QD1Y}4pxZ4EklVNho=>qGW!H!~=>SqS23k?uvPRbk8A3rK0zvtz45-S) z+=C0x=yhfln@R!7by?uiom_W7C$6J|^c$vj>-MdCckiz2DJIJY;uE`e64QW#BV5g1 z_4u0}fAiP>+PnXLjCS$BozFk@%zyCb|H94X;##puTD?Y|PR05Oiov(cHJ^t+e znahPLaXm7+M@F!a0q#es1O5;6spz+0B4it9QUuWq+o1?DAy$HXBCd1Gom7aOA}NB_ zO8Z%qDR#=B!g&$>fpU8NBk{;`&h9a|bqbAgy1R`J{N~4h>DPYk$A0Q(KK;a(?%jRn znfv!HZrzI3&R18;^u*oE|LI45?8o2vuA7>F=sSP^zxl8IiH9C}C?Z!;w_F~*d2xQ> zz4w3i0a|F+xPK+KP#%^;cZy^{Ot?R$FN7)Z@0mBn_^IRQDrW;o!NydLB53cV>b>jf z!tdVGLbNEw)^ChEU;Pq#^_{Ww$aXRfiqU!m*~RIL_qPA`fB62N`k8;swQva2#aF!c zs~))Z!q{7_%9+BXCK^VWk>2~@s>qvxmJu2dU>!m^Ta_{~ckgY-Vu6~6Xd`nzSvg#o zlQ=U1<;sNMpH4ZunR|nzJ5U8k@I^6=;h9Ip9*ZjDiI|~>Q%6K&1Xh-r3VOgY*hNI7 zH-`iZpX{Uz~pfnsJ;-!8FNm?|$tp-?m*uGJuKkw7gN) zT2LIeZ@V0)S&t5}QzV$1fG2^7koenrXC|q}$-Q-yJB0h;dCc&{UxyDAbe^m{`k3o1 z2?l6rYGu}2%`(k!*Q4Wa-*+M!ebibYQe{fK)ESARLj!nVWmlTt2-y!kr2&p$MwMMwA3A2ZnTHQw`!DHfMs96%J8L%8-5@wGi4l@fv zfPS{tkmCqS+TAk_Sqrg7~!y{S7&1p@puT%m5ta2=YF6TRzMa6ckBfIXYK6iZ=)}D1auCBo=VO zxEpdfn~*2fLX4JEqCr#_Vx|2)NpIZz1vgJ`e)-jHP8n9RYV|#@w*JJ^cYpeQ@BOd- z+wcF>XFfW{ezkQLfjlBJb9kx=FC)gYXWz2@z~BF&b>V;WPyWdVAGqV*_r8~l8}#Un z8|{VTBhMHWSx$sXBDm9$VTGdd(Mg#+XYUiwqK+x0xbE5-k(o>$o)jd-$Z<6)5$lZ$ z>P^=|645TNF8b*;59g~MI^Xi>drjvc;oKue=Dv*|`muL@-~ar>qwm4R^~R&GdgGhk z`i=)~-yW@BoKEL$3ngOm-k4}vimLTCglKw|Mn~!;BXMZ>6#IJu-8MCxut&(hC1>xx z;Ms`~;Y>6L5i^_GzVBG6iO5WV%e#+KYTI{sCfw1MngAzMEs1&`wHB-w`@Xl{RaLYA zkPuc7>>kdzQtHS-vy7Mu+Gwqts}?wE?1VLA=icshC? zDqL!fh*AqN`AB!vmJq}Uxc0({jWOD?a4iMwrkO%K=EG6b05w0py`&*5NW>_$X3(65 z|7rjH_T&an+Y97qc*&p>h54RY!hN`(POGXSzJiD#x}d4*wE9s2do&q zx84V^c*wK?*+Ul_G1cEwD^1bcz_NBN)dhKVFuF64pv^iwLcK&_l}j3ZVBf?A?lWxy zJ;pQ>%MTYm>WM_=9tZEY9>PAG<>8rg#$*;YRY0rzw!8bZSTMMKh5gk%YOQAK5y-JY zLkm_&gd|MG1>jL;R>{N5f-ME$9%_@#bZ(tYJ_gftz~H@bAM4bxCH(5WH9eHLYIx)_ zlZNM==e_9Le$OAi`S4@1+-6%@PCx(4@Bfef(trBP@B0lZH-e3&_+V0VYyP}^;B7DO z56Pf=q>h=IO?fdcHDbyVVs8izLiz(2BZkLs#u8H|A@5d=e2`;K7s5QGN~+l-1``{| zvH1sU(#_zPoR-%;+#iy1tFUB5xCfQf6PNA(_Fw(A|M1WMC%^H5UwZoUACJ3VD*H2~ zU1>XSm-k!iR@cy)b_zT3ve0_^; zASnaFw3xYvB9ci68bG9WOd52GH_(cTZi&_!g6RSvM~uS|$8sdI!la#%dB|9yj0Yy9 zhSXXfeWVA=>~=#=$vnzDh-qEd-bZUYGcD@^F9p#weq(R}pD|C2BM#lnK=fd4hRg|P z9UQfA4dcO|69XJnGQ+BIG2oxf6k!o9wImY=5{MNMwU@JOLxIuZE6g~0XvTczlV6(_ zAtAy@6A?tYo|a{)C{Bgv7u1U|ySopk$kBVw=BVd*VI1taWo8Ud%0rSo@F^jpZQrgp z52!ftYG!6qFbiUkk)ty6DaRn5KW$`y)<;AEhU4wLVQ_{|B4&;};lvjaQ8p{*^BJEi zGfXz@?&HuHh{(FG!$;pc5rG#*nm4=@lhZB`Lb8aITK2t_T0nq{NFF_u5$F*kEGW1X zTkGzFl3)?aNRaAKZ6_uClM#W|0X$7sN>ch5tu?rZ@ZTL0l%--7M1(-=t@nWkOHGA1 zrUQ|C>j(#t8Q~tx;t?X~5T@1}3zuTx1KlUbLnso!JD9VlWV8-yy_mAdLyx}lTfgg% zuFrdD+xiIA<>vc8^x?nwSHJgt@Bc^)E~*KHu@3o+TNi=vd_# zDa(QkKCwcqGa4j`1X+PZ#K(mZ1g5cfB6g&st4x<17Ybr>K}kSi3a6_}?{_!5zrW~I z-ug;^y)lZLDzwYhjXbzSQ79(mF0 z-tvy$^UuHG9pBdZV%tUP%_r`k|GV%1z90LkpWIq9m*K$|g>KvOnn(FXx9`gp)lMZz zgVG6#HZu}stGNd`VhYhutg|3w#(Lu)COr~)nTR5NkavpC>C{KuzfZC67hYcT;PRGN z`VI2fYWgC?6e<#$Lzj2H=Y4>j7Sj^5 zM^dNujEI@XaGZv{bqKgxYfKDN#oR~5@W{t(*qn4LMpuy7l=Nk3e*{e3&?2Hm4SH1~ zf+`o@vEw*nMyN9~LBmlX%GWkqI0q=zOwCHM)<+`X1TSn-EoFNBCa5`cANmYDJ?ExgK&u?}&8ab|GIrlm2&&71#krKy`w$^So8S^+;c(7KE$T5;jix;iGY(fPee~1mbpQT+sFNd;l9$D< zE<4Hk6|a5Ee)Z&!{qWz4tNWLGlbhwIf9V(h-1q#2@BR1x%vZkoao^9%Foo{*U!JFR0$4}V(as` z+&J2Y`^c7Ej?&DWi+sA(O=ay>Tw-0~%)8G4F{FgUx zJ@^f8e`}5=#97%d{Nig~dOm&r^7HrBEp$|ZflP%cP}9xe=oZ&FF)iOm$h7>p~$SBIe!(5!ESIb=0_Gi@=eB$IT;3Ey(!8gbPX4HHSfm zH#?6KA>tI~w(Wu#$4vUNKaTLX_!w};Wn}MtsTHKO>hxVP(Xv$hAZ9w;duyeXVzwvs z)-zL<86rYKOyE2?BQv6uWgk2Ibih2oD-<=frLn0AprnYTTC2Oe4@o(8h-t#Ww@s0v z;^YxQ6s1)74VW>~B@??377-Rw>Z4B}I;O{K`0yAUoGtdYBe;Pmi51d-Qi>1fOlDq| zilZ9=Fc=&;2?s)JO<2%$qGtaqPVe9L7yjJ$eKH1ud<_ILLS0}9>21I%Q>;XK+xvBd zx<{C*2YBNdSuD(ZYlf^V_l!V+;*pz#6^$ZOMfSEAEy*+`fDr`#t+&Z3jh>N9t*~^0 zEx_zB#t;=wBIe<~)C#FGQkB3@K-7!B@pxl=S(mG;t6~MLK<}f}ni;+KQYt=_xI0m9 z(nmKl3`V6CCPFcGr8G1?VOLd&NF@8??(vv;h@y)9DIyX4GKRx+f{z6bQ@~%K zA9OZwL~k7;yl`LFb>DZy2>^74rUgvezVEeET&@wpBK!Hgt}DhICiVyuA(FwOGPcVn ze(4u};@v;~Kl9ZyeLG*A7WVV+{<^pSnLqibUjO*3O$MXG!-GlcsB(|?4}7kD?3vS* z8J|c_)F%TR9%6-reeaA?TUN>-At+d4cd14sW8bXSne$3KaVcf$gHnizdJuOy(Yaog z*FI#gerR8ZTUeo{@K)wKHP12-izM+j&FI{E8lSI&I9}2 z(+bJy_Kh1iZ{3o5%Tw5|p8D)Ze)I?byU%~*S1UE|=TqUgzvaz;{!jne*T4EzHM5q| z_NH3$e##f`_m4cupKlADXcX#6wGwIWjflCF^pPWEU1%f`MeAsHp(5l?ab%uzQlQ0F zh?GVn8jV}O6Q@@`Utaf;aVMMKFVssBAKf$ezR7y~gP;B4zw&SY2fy@z53Hqb-HDe+ zUh~zz^Sl1YV_)&cY|g~BSbC<%aJOnC5@U?f&59M<_l|UKcQ;e48ma;m*L^@o?qlqG ztF?d}R#hZ8^`p1vI-&-TZ*Qa2GDfdu>Aja?9q1^cB2>|09pOl(a1VsDA#I_|wCx$J z0CHPITW{A%f=IW+IWu~8gSJdo$KG&lbK}3;`#6(C9Arw8hGZCshk2?|(&g|EY zv2eVopfLmrdzR5Vt3Xc#74mRbQD}lx6_M4omeCz=;(YOwa6!uPx8xxh8-1#cVKJ^t zJ(zI*PyYBTp4)}-@Ba0VDsyI-mCV39x6}%G90bES!e)e)>NqYH#DU;*RBGM#Ju}c( z1uPG%06wf3QZNDlqjW6G86t{SQ6?BubACpF%N!wq_)HWl*L2qZ&y{e@BanClj$~p) zn|VZU-HKt}>8(SpYg&l2wFbZn$NG#!j2u2{tq?ZgRUCaNqB@zT%ZV5-OGft5(PIH= z*(9upeT-@2$ka(jIV?g}45>cE4B}1=F8=|aDq$L-6y^v*`!U1|W`0nT*d+O@_pS^u0+%IS-xlH5UOvfw~g5_@h8!~1oBs@VXz>k&4 zB!G)vEHlV&Y$WNn^@nYJ%?s!?FSuIHwUq6=1O0R>zwj&X`@jB`|MVAr^;Z{V58k$M z=S467%5VJc*L}_JT-V!0Rfs}_s0amfB-`b=tyM2ne&bhu_J8@i|NZ&tPg0(lhS2^U z@A&%v@Zb3}Z~ThKsP|%aZrzh_t~cr9PwgLlYWvjFr+ulkP!<|Of%@^l9pK)Dl(kX> zjZTx%Nvf5`@CaEnc2_eZimi!yU&i@X-hRg`>500Q$)Z!jUO3tKZU3za!GNXFT5a?8@fo{Bid4DNIj)4j8sNQ>B7Q{LM zuvMF_b~MXon1w*1*evE^5rKOE&Z^!!PCXFIF*_)cn3T+NKA(jd&ae(%L1qHStkM}C z0b$j|38x~KSd@JpN{WVXFw*X0S(Z{}XH>PKrnqmW-k%r;F>>>)ltayUSOS<;ZErhX zTilv>#*t3}8XxZ9YZl=+^n{MeKT(-|td!_xj|dc#5G5b35xkenvP4AdEquOuI3jR5 zL`138-D3m@1-u;*{+Ir@uX=75#-IM1A6Md1?Ed|$QjLk%)4E-42r8dOv`7&dKA;P( zweAgmZ$zDt$Pzax@ zSqG-JZD$N7y$?0?lJan*j~i~fmoxis@iS}AmDibjuM z!Ent?9?`pq5G(4wkIy7i`0OB3%eJ!yai-tBygllRZ`a3P+Mmbc!aXZuy>TF<}WNAtmyl6p=(@6`t{%Nr~VKB>YLy624re3i^WLl>6iO*pU$6nYJBn;dpb|$ z4s{}_B&g#ST9k(SHkeaXs1)+ZDbO&o0`lCqGiwa(ZSjk*c!9k3h3$sZ4Hxq6?X;H6 zk!0JxrQZ0!6HooS|IuH5=RbOZ(MJtVoVW#79NRi5v5l614=Pw zL0ROi>gzo`>QeJ)g(*m_FaxOvi)Nxan+3-@PH=n!uxC#VC@LJM5qJ(#SU7s`qS9Nh zwWuC>5G<60{6sobBsfMeRw9E88R=sTC{@)ITtXkC*2+wrd~LkN=2S{;ZHEYuXT|Bf zO$~kKIwRZnLlxF%9c)2G2flvR$?c1TN2wN`W6t6P`u)%Uk(WKU3**my|EHomQ3{La6bM5E zhIU56(IZ0B@afR5g@*{w{9&^`25wZGcYyGC1}+940b9`6?fZUhmoqEdb}m-Hkmo@_ zVH6M%A45dJbukgLZLox5F+>s>03RzeW*HhMVS%yZ2u1|dW=Ca3!XgLQ4LK$5eoX}( z-_lI_JQy0zOsszR?~q6{vzm?BEG82N=;QjoV+uIjq^u&$;y#k7mO@MjyA6t>R%$^5 zFcL0tWtL*+ZL6g~-oCEu+?>pSR^ho4k=|M|35%JIF_yZt-tagv@o+D-6fHR-DZ7&h z_x99J{)4~yi|_h}i{*az@?sT^^J6c1(ZBvL|A{~RhyKu=lkMAMHKltf){m0+?S3dTc&n{(k>@Ifejqmu*w|>)i*V_*TYb9IE_HDDO zMN98Hn{qH4w|zGfm9k$w{qCRqf%pF0kDV`{T6n~HTa@1Ny4U^N|Hi-dEnoi*&d{;7 zZ7=IutZ*`Ixqs^E{K8I8jeKUao&EkOQuW3yVxiqBgosFzRB7~toUvAlpzV@uxQ@P( zzU)qU$@A&OH}ht9iO9||q)6X45e_rw)6ak4!+-w&@!!1r7k_2+ZQ;^8uMfQRZQuCa zZ+zQ3Za?rm5u=nG!JK*>ZYo-c*f}CFq0DG-Izt-j)HOqQ!&cZ4yIw^S1g=C zqAaXP-h`Nyl7P@&YblAc){0Svh!QzHGY5%LJPco zZP)H=Jl#pu+b#lg2^2ReqAJ>3L-!0tdbo(FT7*OW@55)g1yeej!Dmc^vR)S%CFQ!V zy*EsCxattUNJQ8DW;rc;V>)C9LgW;j?ih~ON>osLetrH1$baR&ccRo{Ku0nH(W_`? zLe2#aDCm-H{?1wKhBvVvm=)HP)^;Kmm1)ZBJtOcv_^zZ-a(nu*A^ZE)ui zac1<^3+e%m86L1kQE*X#Ge*T5$F-2Ve=8pG~9)y*0Q%fgG2==Un$3{&2!IKO5OHNREm{i zrS(06%+yVBE~UKSeL)kC*#|1;nIyZ+ce`v>3n zm2XfQ5@S(|J=lj>VK%?){)H_*eb+yKDbKXhg*Q=MXgN`L8bk`wUy>?0Q6`yEN79B< zI*F(3{Q=Jh>+LX*Ij|NOuI6TkO&eft9!LKHE$FhbMQFE<{fwC0!YpFj0<|LlFf8W&`~N8BH^ zu4*-U6D!0S-kF^%)2Uo$w+C;Qmp-2!z9BDIy#y8Su}PAcnB}&gn}<`5<<39(;K%>m zU--+v@~iJ#%DVdy(TfLP@;koupMA?W{4ODlB&)^Lyp8l&PW5Wrjm6X=efY3ahWBE1 z3}+R}Y^|4qP?vf99kCokZRU8RMFwX*&X)<89Q=oSM25n0dyGvOt=wmeLq_@$#{@k6 zw+?5}hKSCmbsks|;j>F4a{hOyG3!#>-lp14g_D6cgSP`7tEQtNfz5ywo1xKX+Tu{K zB+UIdXX(JMr;bJxRIsX|-3KTIpbKbWkwgNG{^$cJ8D`4x0PcrlBo3w)em%f}dc*XX8&&Xw|`@SQ-1w0Dn z1YjtsloAyCwhM_>{hmMi^5=G8{F%S`abYB01yNcl=;%;U{G7P%@O}3&=m1r4)Qe~_ zYpsnj;19@5Q-eMgFOaGNM8au~lq7spDvC&OCWZicgu^Qb860J%Ckcc9z;GnWDmKF% zj}H(qF3QO!;S-4gpO`a|(a!*FFdyLqBr3gkAUWHoJnh5W$F(F1Dv6O@t2Rs38 zAkaq#=P!C>aDo9675pmDIYiz=a1Cze`q^{$QVSL=(}F=MVHF%REMbgMibY1Ty6?NH z_TH9d?Y#k;3RrrNx9oa*#f~+6pj1+DnIwn1m=JO6NlYA>=0E$BfA2j%{y))vKfICe zJld^OdG%v2`GbGp_kZg*eBD=m#jB}pV{7a~OV#Dne9+m~TxcVD>MB0@)cE|pc>2tp zEtGl)F|(!xX~% zKl|_h`=`(MZq&j~V`RPcg2&$QwZG#VfB%CodPz?&R4pOW+tvBOn|FTScmD2w?T`QA*Szvo=`NWXqqn9i zDn-|ogY%i4&z4#-hsyJlQoMd<{zg@7h~iO6iC1K@P_fG+iDMK5!1uT%NS| z#w-Lnn;d%}g?=RQQtUta7hd|@E{s3@H$EQ2 zYb})I=_=~srUn@=LfFsSxs)ox2g1k)CzixKMnA2mh(t;WhK0F;F$+r@-9+&oIwRb%OyLt29(}aadcqg)qa!vd=dv;#n;mDXM`l7ufQw{u z#7wv(up*RF+#T2}ii^?lf`FH#P}NMv6$N$2EVak#F#l!(PU_)Uey=GID@sQR*BD1H zcQN<4PH0EULb#9P`yo2|ai^7ZAR#&2ORY?Fb-r5af{zZu(fEKe(}Put88g&qhFcJ6 z$wZu#)s{>e;Y_KzxRZ}oZWV9$KlHwT{Bu9`|M|ivKDtn74i@Je>&agI;urnPfB28Q z?Tv4E_~92k^x&P5nVozKB@s0>jm*4ses;^JuIO^a<(B78BQt`NOD!p!D$b@iidWIw z3tbexxzJ7SvaCCkUc#Wx_{n9%2MmOU5aUoAx?{|+t!x4YPHLKCyH8l+n)OQcmDnN{q&Fb z`(Mg-W=#`5S$XYCUiioUxj*`QzWqDy+`6$A8t&^-#x|RY(=%hJil|A8+y^C5*oY`g z$;^>4hL;;lr%(&wBo7i#qG0DFXFe^o@ApS)J>B`oAN=TF|GPi@cYg5ipZ6`FOd^Q$RF|+f&n`knP;kA@8daVm9 z_kCmrmg$Hn#ek{e7?Nq%NN}oHIB*<;-e6`w=m+e{y|-mua9e;1zIL2NB5@8+4UN%p zY=MCQ_e)1=4&vP)s6j&ZwJjG`1iS7)JNhs%p<{cV2C_JMu!*b~3-{ImM+1)%R7fSB zCa4FeUKZarP8%HbeGFl)OYsr#Z_kp!(J{;7c4Q_9WReo#%DjzK{kQZ?m>CmcWr1y= zmU7-UH5HQKW8Tx(SVBY`@}fK(^0*a5C4&wMQ+w~N?W%_A5u7&Lw$)lXa=3B->4ZAq z0?q^EAQm6}Ig{Rh_HTWHVpdaNXq7`B2ECW6E=%owAj=4!xn)_d&R6p-aWAE|zMs|; z3NQ%HWYbzJ3M6n5F3XA^fJHLn%PIwh-;(E;BQu{MJk)R;!%rHg^#s+dyN}*ar_%(! zaC;NC)?vn(-i0x6pCM$hm_@|C@5{2#AuBr65y4D+Se7CJ(a@#hSf4utKtS|osoB2m zFxTRu7nRW+c_Cm>G7||0#5Be@ttWg-wM_AqFhihBOc68US6KQ$aaDkp2ZPGYpuMrY z0~y`hUh8rl#fXnu+jkgWTWhs0rC9GBUp6UC)H6yc=c{cNN2+Epk+W#`aa#NnANlp4 z_|YH!?1z3;$2qg5^zeNpe&L;4FMj@=@A%el`@P@#ZI8d|mFk|2B|XT6g-w&mXvsZ= z7E0!%^rRTbULg~-;*ktHfB4P=Z+OM4{?K=Q_wV_(Z+hsVhg2eW zkA06ooL6HNHOt;(5UbYZB7-xWV&oB;nM!@%nKA~+BF#I&F-&@KV`(fO{M-{i`tE=H zU;Gc>|LMSk4YpPmn^$3IrBqb5gieF|C+4g;@i>h9ouMjNl831q& zQg?^|c_x@PaIlKX`Rb}H6^O#VZ!AibcHN~RoSCil)4HfxYmG8J5)s_J4^z#gNcS;K z2@q?c?2>3U9Y7T}#*Cx|qK=bM4xFu)f{O?L-HO3_MYuCWiD72lL4Nyx(M+{~vr9$on9D*XzHjhIe3Shcn{CPq1S zqzm!hnu;8~CBZY!$m`*bf!NfFZQCX+3%q7An;QW6;bRKzsfR;caNuApQ%wZ053lmv z!mOx>OidASWI`CqNv!PMt!PAIj!437O!%yy&*xeT?BZA8}10p%0Qq(L69V@L1Osux}rZ@KGZC zEg?c`G)CL6?)~!5{Nx9I<=xMG@v~#Qs%4l2agTkwSTA1w!biU28@~Sce&aX1{1uNq z|ITe6n>ra4$!KS%NMS8Yghl#EOr_GGe7rh z|F0kTyFc;HpWLIJN{t+C(1>#TMKAxFumAQpz2%$htp_=YQz%@Dnb>}{A-vWjma>G$ zc{{JCRaHjI$n4qGhz5%(33&ujO6IZeBiy>?-rq;k=e@_FMRO9*S_p! z|IBy(p09n&+g|zDi!UsDMA3z_Q}?mCB*!H6O_;Ow-kO#wMPj%s4If$5YE4T!SsPxh zoX=Mu{q$$v`Th_7cYo(ce(i%Fpb<)LO#8?zr;F#m9pMS$!-XXH|-q&?CEwOhT z`bbSi<{fZLRYfAxk+9?dFaZDd(V;2AH0>Emq6PFDm~mnu9DJCBuKVmzgwuK#7Axw* z{oo7ty;Uo$)bXg|C>R6C1Y!iiL}G}9R4Lp+jI!AGi$Ao@Zz3> z-GPK5gA^4ETSwFXJmQHTdvN)rw8zN@R4mGK;&XQI}YR9NbUu#H4DyH*8=$Q|klD{&ii2WotVm zORB2EfBug?_S`OvfA4?%XfbPhGc}SdR?z8)>)nd=K2!t<503jjSZfnv1J@D@Qw zP+cHCW0Wbi-k_v%cQfdt2P|xWkHB+a;mFKuoi$!lJ;V}7yaC5GYr|(Y*+c+AGsKbL zKe>$=6B76gVUs0Fh?MY~iO8%Z&5{z7Q=(50@m@&O5SeZ!pkc#@id+X(!hycjS&yNr z+rD#>s8}hjH91U+0GhB#T$74;DI=yjKuuL`^nT4TLMR1z8Zd%PPYkjU0DsL>W8ZhE zp#Wrq^M@{;glk#0?MlQ{=Twq8btAoxvQ$QjoXXhR7e4*bpZiBY`H^3L@0$1e{!H-3 znr%1_df;Mx(Sx@hfBd!I{te&s_Sb*qSG??HHhFZ`yj{n|IZ`W0__{p%ik#Va4UShKb4 zQJ2CZ#NO`i>{)=f5bamzQ?)deRjCvTYHi<%@9ymrpZe6he&J{T&Oi9EU;n}v&ZAkh zn{^qUDW@UJLytZFwy*!LS3LekQmtl`Ji1$vYK2*ld&bPbEzzhdD&TeH0CwmA>k-}~ z2=ExQ#pwR!WvwM6N~vnn_71=kgX$qj&7_!>Ux6TEM&(x?S#uLpr7wplNVbu?2U+M9Z?cd+%LTeFP)gD`vzu#Hn+G7h#!E=cDYeCj_13WSX(KjKRXD z1|z{NSr7$xLPwz%6MfGgd--$RFuw1Tkne=&wr{6pMbl0kp92xb)E|_!z`Gbz;2K1n zs<6Tj+>_S>0#*t{NaAKai17?hK$BQYnHU=hBO!|Ayq(u&p(Cr6XSgBM(|{AQF4dux zswLb}eF5!+unb2Z0P*yN3XDa>T#7*jd#$xVh818zKwAf5nAkHwVq(nS_Xt{ewry8+VPZ-d(f4F|-o@$Fk39CxZ+*wxzVgj4dj9iY@PY?l_~^siy{(Yj zY2m8OsgyiMyMB|MoKh}I@7hagU>NPKZ z{tI99f`=Y?(L=Xx-mKO79yd;PsWmutsbf2<_kDB^AL&m%`Q)cQ|Jh&u;K$zcf#3Yq zU;n_9_wMeVJ?XS+Z|87!sdnSe<6r&t-|%hUedEr~9fC7bO#{WPk);}N z8~6;&ipLD(ueJ2nLE6Dnh3`jZ+a0?PJYVqEm14NznAxms+l~lA)LgP4!wNy-QA+V} zcjshcnh+-w8fb9%hP#?lW^Y4_Vlu_!kA#Rm1`q>=T|8r1*0#3;rAQG)!!{02ke$Ov zQHzYJg^kQ`Xvq|=?@YAd5s^%jwj>caMM~%rROTE{j=ZqNpBs!A4zn* z0|NdAw2~1FC9li?NQgu+^7FOl`55XaZb($j_O_#Eo`|jkVF1smTDSv?oIi}th)04+ zhq=}TpL_HU>I`=z1ivr}){kIFGxKmtMh_)!Ab^9wjfEMk`1K8pFc!SdutKvCmcBlj z2J8WYr{1|CuEX6)xbGbt9Tp%xM9?BKdap~(AQJKp#wkic0z8b6UQ3Bg;E7fYug}pR zHSidNW^DVuuBXE?5(rg1UQ$1NwjI)2yq;zS-{;ZKK_c4P9+|?5SgCbcdLNPa#=>KY z{~E4X5)V%%6{#ZIQ(yeeU;QT^_`olH_ER5;{izsRQV>P!dl4zji)gj-!0nr_e)%ij z{QB3u@XkYzKL3G7AAR(JM;=<&3uBhNkG%H@*CIU-Q7jkB(%IJejF*+k=JGSXf)@ zOj(xNwoa7mY3+MYqEgGgZ)?41dm~MN>@yZAS&R1FgWc3JqL#e>^wYoo%kTN*2mZ+y zKmU=o-5=gnV=Z#NI>+eBu2zZ`OS*AdUi9!o&%6En=Rfe^3m$mh?TdA>Mb;{1-L~`n zXP>?F{>;5+Kl{WNKl#Z|J-gk1`rhWr!h?O>x${7GW|rNfd3n(*9)IiCf7?r6^_3U5 zZ+VcJP>KYb%GKVi%qkHi9WV=gsa9-sXXfE!S(dgph#*8}bm|!6T9HvoX{{4Y_=t)3 zeFxEfNIxh3juM99UXJA$<_tB(1%SB~=RWjTz|h?X9y;hDGYN?urIv%U1Yt>5Y_!25 zy*JRdKo_o05BFe7Rl`jHF)Wn3bD?2|tqF@h)Wh>OJ5;kX!Y>J=eG*Co1BbW>oVN3X z#7u_Vk*U#|P#TXh5cUJv3*?%(hM~TVX-pwltcH(TmV%`D4$K!}!yG z^Aj9_g-De54ME@1T3go@vGUh8^!d_E^d$jO#q2I2$R*UQwLK&2vb46NZyhuB0jLq~ zgIX$9Gn%NqW(Lx$RCNq@AGMSu8hwR?%@BcEbn04fl~jEQEyv z@h3!ysBoEgo@9oH7b^n+HCRN5CM@R8GGnWbpJHNMM2U%}9J#P_Mmzkg5m8GK;ogx% zmPjIlJQrdod@LXqoJ%n!6OVw(WlD!lEhw&CAQ=HwyAL13MTIh_1d9l6e9-%_7lCj> zzQ}a;LM(A;eBn-N@Tr#S9#%@GBVe?yN+je#!cRQ&g-?9={U3eLyPp31$1gAMpU+pd zMxh{z@ZQ|bSf$*!d5S(RMDN_W^T6|-cd^!mRB6$hw=Zt2=kqi7?(T!KUEO{1*{7en zdw*;D*mJ}P#3#h?F-X)-H&1t-|I$~z>CM06+a7tzD@jX`3dsnUn-xCd z#bEP{5v7zi8ncYv*5#B;nK?!`ft-&#rtDjn+P9r0N!dyE9%Fm*Gar8M$KLmgpZV~I z+P!Di5_{WINS9!tF*4d1d#km0Fw&{B?@3~(RYZE*`#w^us&?-qNX%BG5odU7ZE)zi z-n#MVW3PI}>)-b3$G__N4?ofdm!f^RuoN?IE}2@5RYxCak{HK4n{)C_k(st2I*Z@q z$Xx9BY<8|!AM7QVQ&pV$F){78?$#B2j_IL;zNlQl87L=0~VCmQJ@$o zRA#H9D%N(M@m4Ue2G0l;j!3Zm^Yx2dmt`E8&l$O_3+6si3D3IB6cbfFVrhtZf`plQ zEr0=kBP{3h)v~Tf@=6FxCb@SO!Ae_d!QeT|IY0|05oM_rpB8*Ni71kiInzhaVhSH- z#-Ph*KKqdmzW>*M?GqpWkY9db?04IC&Ty?#j9cqg%f6knyVbhXn!e@Uh7&I*G9KeR zMrbLgbRrp2-21Iljo>!alT3xA)H@Hq{42idtKa^04?O%bTW`UJVp1qPncCh<(Nap= zhuW+)1Xi%ry6-!*7|aYQdPn43I9~s$Vj@ELe{jYaR%~w(%q`l@S{90@pM3I@AN=qa zKmDOkf8y7k{^IAIN3=^~j1j0>^h{cp+It(@o=kN;C5QJ;o?_*6QF|YobCR$R)ylS7 zsah{?KJ>E3-}vTNe#ILfdeO`FHbfaGRZ)Rru#Z`_>+XE?j>5&+-E;Pg@T?$h2s&k& z*`T)X4S5O(IYLl>WUR}ww>JGf?!^=rCkmp0UY^ezBDg2i1N+!fc>p;jB9h>N$e>8f z-HZ=602jQ@_#w(39x&oXx8g_6`KQQ6S;_$gDzW615#p z3l>qFIn3PqSe6PLo{9Iiuj?8!O#`Z5956E>c%osz&{VF!w`++hGxyf%KqIC$Is@i} zj0}%bEa_T54LU(g`7iv7FMn<#UtYo8VMYEX38Wa z@UmgNb)qQ+sFOGicZYBodnm>kQH}6rshQOF9dF+_h^C0>y(3v2kmyqD-WoGQykQ4< zfH;uWdocs`GJi>-MT6Zm=7;i-VIzkUA7zN6p*sSs(MJa_gf$-zts!h61D~P!33CUT z&n)}C@!{HomhrT%*Hlogb=x*kh437oDunEYXHqJXkcsxzfJaiMXCRYjg2=*5vr8GX zkCmwj27Z{CORZ+*{^k8;S#YBe5m0T20+Ba`{SS#OxToEnm{oP(_GMi~WZO1Vb9bv% zS+A}(D|O#CtA$yGdqlR;?mqkZ&wS*4U;O09KL7ELJ@e!f5kqK%dmlq<7#g}nd^C<= zWv%7BZ)(J<>}st?WT+)mjGm>G)9re?@xX%*z4R5Yd+pbJ!_8X{oi5fvN+f%0oU+tP zqnEYr!;4wpb`lbnT9?)uDBRO&?W4m+uZ1)2smt1XM^^S2 z?nyyLST zsVSN6=^jp^OlGM|Sx&;V-g@4{FMHJsU;L6+zu|Q^E?%g*B(aHsiz;vr>k^&xH47LDgh-ik8&e40W zGNo4VZTOtKC-`%4sC*Qfxrdd5{+y@0;_>OdVdC82ayXoU5WJ}BzBg5+qqr0oRVgKj z+TJjUA{-iDoF|l<({3VP2It|ffPw6{80G5TQfq~p0#_PNc@R4Q^>A&%{OsYA6P{EXKA;KpH_lJY>3Wnh zBIX2N%H3&}z?K02k3jxk7P`K79A z;SOI~)mc#z7P z9LCW-nR%(TpF0zIcP+wdt?f5XCuTtp7%>$yWCI`HyI{73e5IIO3+iF7f$U&etB+7& z$NWsC6m}m$#6|Y4v$83B>xEgz_RJHX`@$DL`{a{P-+lIr&p!L5=>7gPcke#^Xi?__%W*&!F20^Tkez|y^W<5W$D9B zG>OBTB7F;aFhs!L!(+JDT9^fsG9US=J{OL}K$AfT&3B5;FF0&9G$LmWC8`~ zr5VY`(t5{N7YM_K1Lm6XqZ#fq>29iQ;9Z3*>cDj;XTuBxX}V&WDG30BBXykFeS{}5 zp}hka2{FS(+s8PqD}FzuVrn)9@_;Aq!pt-|T?Ba{FV%5y@llwH-nH)SpRhN(L0IuE3x$ch~`5<3&OjyqdPXEz2S*`?h0;ZLRAO zY|ckC4X{o|raFjzN(5HZQQ0(xn^{nD5Hq*#VjAh3RLZjNJI;lrnrEc3yHhkD+p|wT z^~9IH6jx6@`^4w(-hKN1-Fy4KDF2!lshi4}D-fJ~8^By9EJ}V&^=^jZ;MU|LaYa&wX(t5)|gCNq$7UEB-V)jgr zQcLdx`ewu^ZF^&)Qp(71r@EB3?EyrEQmu?J#t3E=@gOfZYmC^h?y1Dp)0g}Ca_pB^ zS68ILs^OlVqH^+ue4^(8B6(+h?_l+^|!4qMg%*5Qh;q1u>EhY!f$;WO@hu$AEzL||N^E8Q%_?#mb zJtF`LEw#4Rfe{f=Efonm?p{kp>=FktL0*VCQdA>Dh$neNv$+8H8=&TE z0pt-JC#t$_8}JhRjQE0l46^g~p1Hr>N&#^)i$G>+E6>P6)iHc{H#Pj~aQ88o1wIUb z?KqaPMAF1?CM=FOqLvB^WOyVcMgd{Dyt-PJDvUtuHpayKA*%(J_&xvPbM;~TjgRYL zppT4VWp8^e6?O!in`VahK$wZMluCr3ZOT$2br&JJh6 zQ8QJ=!#&*VvM}>@wU?rz)?mwmUELFxnGD&O6 z2rPeQw(UEd{8kJ?PXPD8!Esg|!}yq-zZwdK5Z*w^W|lKEg2LUw9xIC&B}ZoOX+_!Xj;sg4mNNL4aO8BjP`E#x~Vu@seAL8dazGTO zPRc|7F(Ij&7;#TyjHOnd`3Up*%}B)I9--hf7^=Ih$zK$QE(%u4Du2qhRe11Ob)XYVYK0pP`|+DAudu8(1*s4B`*j>R^K zXkC_lZ)VDrW){7#>+0dhXN!nw+qdi7X@I)9L8cbj*Qm&vMw>A^Vl~$1LPxm^UOG{%LpH>dv{UsNKztEmT-3k)b4@D36O%Q zKx+tz=TfUDCk0G1W3**mj13=&sn`xz(NfGkhYtwV`|xT-B*~ab_BMz~*@USO6~$bV zMQjWwW_JqGB#}fA+uSKwBO|O*fbN!Adh2QimvXJeJ<4wpQf8u!c@Cv2tx$N(0VJSh?>Y$qnecij}l^5;qZvwnMqigsN-BZWVqNTrfpDVv;h?| zJ|US|YgH8pqDG$)wludo$>hE5wN|Y1kx{gG41gRoEpiMJ=>Gltr_*VS0dX_ZD6XGP zCpXg&c8`nGsr9a6NvL`&e1y2bMTpn``d}nxE7ser>bW+DF;9XWE<#};N_Q`6tjxmX zBj<3>htlVt@{jy>zfh|Ah!}x#Y)V3{w4yHvHp>WbYqb_JVdCBfW@T2UvY(Kp1qWxBvma%rj1ACtPohrpSt{6vgv!;De=0{x>WS~Nx<>$=oZp-`qnu8ueX${b@*9!szgbbFE6M-vt~3O}a9 z*2BjzD=gx}p<033y0y-SuNy!CFkIY8tu;{ez)51N+EYbTjhOegs|w|`ydcfDlnP#V zR@hG=uVLOiHbNwEWk!G#!?1%7W#-gVz%?3?d)rGbr4(=_t?i<0W_2k^5n~W#Z%v?) zc8_#cB1z(?)hME<)(VN4F=;Us5|c`)l#-!D#-uQKC>uGM=u!(sN|JD_iy5afUESY^ zcwJ9gRD`Su3%6|#cYyE1JvnQw2HP_*D3y)$DF+PaC%w&?87#lI&07S45&2{{sH&o2s zF<;}@ZU zNZ3_X77>~3BCwVN)plVP-SG6jPQ&^Z(#2Yug`WqGx5cZ3&;_{FvVPq z^tg{9n4HuORF%TAEUU2e*5{Wc!S@h>%SKAYi0PQXuQ`IqL^-LMA*d9pgmqnm(4vTU zR*1RQg4Of6T^M*@J)A|Y7!mt)OQO>p#G9CEc;JH@8EP`6Ux+Cjjy^^FJVcXQrUMSb zlCLUO$`QNdW(6R~vM!N{Qf}DakUG%&AR>1k;VfKA?R`YJ9~p%pg}`Cr(1Z#rG7ZEa zqB6>?)l;)=-{+%Z>W7{C@K2%-JW%T>26{yf3O%n+e=sft^BW=XYBom_&Dz@Ikwf5a z9C!dhXp7o_LpL>xR`6m?5!7%;@m2;H!ZC)2=TVP5#+Z&LpI4Ml_c$HjTL77zqIDuG zCL-A1Bi+<&#`O9j=*ql~IWHO!>w2OjfYCf7-Ufayj)W3rf_}(h4o}J;H)IcwLEUqV zQpk+cdw5rvz=nJ4rXWtckFhRGz{|qCSjjdnmdc(oO~?whOhmFssdKkru)*OtD)XSq zfcU$6A0C;lPu(FRhrwpC@^(HmGv4={1-eiRO06X`kUXj)k}OQ7%*ImHGkSOmi$O@! zl<}vj?>ln}6!Q_BIa(Jc5jxcpTf5N0J&Rc18*`c!NKFpg@jlH)ef+lii#O}J!fDVHsGTx%rdgn(t5)TSC<8Fxx4H1V^ctcJsCPxov|FE zNUNu@(gYnoVEFs^j+#Y54Y%rb@}a%R3#Jkx#my#Zc_g%TSjxEe&*`iP0m zsmyq_aKLcP9OR6SFM!|J&ZXZlIfWGs4|I6pnem1~D~cjeJ9BbXC1~ zZ)SvtyV0w^R)@4;L$0jwi0%0I@Q)KwQ$>w~z{NSQ$|Ov2RL=Kp z>J&De_RV#NhWx&7CW#0khISA3j@_{lRps+MBE0uj!{|QLG_qb_S5~oz4D<8|ghV=3 z`d(_{8I`$xWu>S@1`EL!OjJ~;+K7wj{Di3b$xxU2+w%0$E%WaPUWPb zqnL}>O!-)NzQ6A(8goW?&yea!_=tc5M8>=(bijDip#5BH4MPez`F3xsZ6c+lEGAJ= zQ><81}L@5rMh&>1AQV!`P3y;rOVsAvM?L=H{UYMkbh7bXbgh6wlZYvZ{)Z z$G7(aAqwbIRe5+s3>#*e=^coW2|$L0P_|QdLSQA;UJF*x$d~OthWayO6buhXcmKFu z{7ZGs5GpbiaWS!tQAHVvLKf`^Ggr}dU7*so{;Vap%p_<9I^qEnco7>TBiG&-(lBvl zG7*eGn0O3p{bQUoAmNSJc4B630ZK#>Wwik|upIDQ+&nR12Qo+I*Vju#M0u|j?tlB+FLZ+_c|;U6e?WEJueoP*yostt)^k5?CvcL8 zjto_huZJZwugS_x0%&zTJF}Pt%#gN#|6O;Nh(a@gO4*U0Ud6Vuj}>oibyEGRMjIQl0_U^_c@q2cYuyH%_M1vs)?GYDsaWU z_Z;xXiD5S9;O-vCV5HdQ2YiOQV%IG0q3&K@i4v;+CBO*Lp|5R#w^rBDC~gmvnbAn?Ow+ewyLt}s#NEI z$;!w8>o=hCGh1t~XNmCF>+8Pn-YB+vI71gMn$;nIfbz4I2bEE1!;gK@10|ghM?_^| zOpjw`UXxguSP?v)P2qudDv$m4>w4|&B63}`t?Gz|4b)F@-qXw`yGJInfkkBR%~e3- z_uhyp!vkfez4w0B7z54=%-qh2CaB@4=v=Mhi;-g?%w~$l zA}g-f3p%y6*PIil$le?0@b$WmNeeZArfp$DMIdP~5vbhjd59R4F!-ye>6jO|wt!8+ ztbmg(tbE}y1!JqoXp;k?tor``2B5Uo!r?(heDWHPR7Z=*)J%;TJd+D2#Pd9+27p>2 zmr@{I1v(if4OFBe!ZOBSmN7>$MFd(Fz?W2n+X9n)5GB`o#uy^H_Zlau#y8k*T9wjg z)dvli>vj3wYb^|i@AqAm7sy&!V(@)+SnN)fOaz0Vtgs=>pr$A@5}|}B1>4pRCQ1(>%s<#vRe4N{ zy@fd3nNo%4nD=x0_DZ_0S46-!VP3O{RK(OAMh3)FZ9={yM8aSUA3`>bF|aAX3$Cb- zHzwGLhuIM3>$=dJns#M|T@2+#X706!3I+A2*axHix~`(unr&DwSEr~U5{9|a!i*eh zstOMQDgxgG9f_HZVMvf%YhBmG3>1hNv!r_*HD6U*XJGJa$9534xr)v)&GdOc-ONR( zsEUB~mXR6$sgOQr|LJB(m@Df!;>S3StM`3p8@~1E3-5(*NBxJHE0eU@1M{5Y>+1_` zfx9ESOjYMKi3r1Lcb{`&cvHtT56q}J#>bx=G7gx`%P}!hQxkpv@dh24s1+YXl!q7@ z5ePNG%Z@4sJF2RF!kS>eO+@1wfBC?GXNCx`wW;d5E>+F;l^J8GrZB$@h zs$goXstTN6p?+wcI%Xfk%$kSL18`w^)~YIi*Qm0wPrY8R@XUcu^-wc57} zjghu`llNXN2|OG@04(cSYRUvs{{%S)1FkVAK(ll5!99Pg>b$P)j!mbEKt>Wppy|#m zIP7DJyU2sR+L2-fpIzao_hxJh=82RZ+cO zFK~b17fIBfKMW}>QC4_{&9TFGxF~O5MWxE~HM4T|+qz)Z(sObCq z%~`)%RR5qbVi8r_+W~^z_hZwbEPM9adwam9p04YPs&@9Yw%QhzwV&7PlJh8$HbKPh zyQiH*c|4L;^_tUn1k8*@nE1I7-6(rw(k?}`_s-*p%*~4AgMoj6{TpZr^bByS}afi<%g{ z2nbgZDLtBnhghd4K~6zU7V2=%(_@KxS5Q#48pwC{j*#{v$jON{(`#A}%q-oAv$n7CfAF~*!DGU{jv0tF@{=%>KNk%sd= zS_opMLsg&qHnVxne@zDbe_emB^!`8plc{pi+8b&B)wcHn+DJqKun3y;>VX8-O13+9 zjX5KN3Z&9bl^A38GijWGvrX-}flH7CROG`GsG_2I4b+JkprMo9?(l_2>jNi4Kt1q^ zL5)MlG!T`qz~J^@#!B5MF)@*d5)*oMuua;5<47*BiDN0CMXf62<$lEN1WXBuSIU{y z?FD^e^6ImrL3BX}JNhJftiACQ5L1JL5QpfoW-AyaVd`GgbH%-Pc3fav5Q1b4mN48H z<%qf~3yIz!zqdUVGcgl-ZFgkmG@s-n70ev%eS181+M10s(}tOjwVpX=5ykeTBnV`Q zOttzJ3DTuVT8kt{tP48a{k}1>RuTOD55EOw5;hEsINYlb+Xw6n?>x?K8Z1AVj(IprE*4Q{0xOTqj2kzX zJl1BAE~BcWqdNXLBW0DTVr8Pyp^uGgL}qYXSHTodKgen^*>TOGlc9~h5)Y9Nl7{a~ zC*~O{6WAX}=aTl@dfpetdn!jUo|!CcqS-pOqc3UGx!zu|cQuPFI#v(P2ne*uOo0AX zh2j`14fD=1XIE31MP-H+e&KgP7YVELDpFx$iSWkf+q*Z;6Ab9RiU?tPpFIIvL9=Nf zQ178^btoY!KQk)ofe=#$G?h}v`WnCbw5p)y1550ztuFDaRN<_ZzWsmypZ@#*?78r# z9R@Sd!>;ae=HRqoVMXpjCO#0uF25iO1Fr^8j4`TRzTme|MDv>NuxtoX2CIyi0OPa) zpOC6D@d*c(^MHw3s>4(j9hjj}894I5)%lv-7QebGTM^ZWfC z(~61#{$$`YtBB|a{lhUYMXeEw$f|bpHd7Xf%v4WRlM8WZfum+L2=g-21IWah((KItQGe_AW zj5eZ^A($frG$CyCs!GxsK~;rkot3OIhCxES-S^%oGBC?TRYyz({!1ha!9))eg(~`l zKKVXDYN}XZSfyRWRJ9dS5i$XpnW~=WhShW)`Z!+Fz4z_}5m-^Vf-{mK%sqQp3l1f5 zj88;#j1le`x%UR?t6){q+#Xf|5`Kh;db61Lx@JZ`&mtxfh0Se7RhEjXbN~xT%FLV<%yi#R z!cB~si7OJYEJllaZO0fu#LU*Sq_J8SX5UeV&I{`2gXs&ih+OlcB2|Mj078(g6ed*# zjTQ_FCN?#XaQFMZBSM%mYcD@VYuDQF`Cww~oBLT!BWciv`+jCINpEPC@E*W2TKCFR zR04^PW@03`n8NaY-VnbH$++cVL)Gr*Q8N-j-a8g3Wr^_D^-51j+~*wc z?>7-g_!t;Gk{P%kg)AY?U^w%Q(2J03mgG&_%QqDKmRGpfBW@|iQGNhrwt|s zjS@3eMm`6#>Zt5CJv^#tj(NWye6Z(Plr_e@-?xa&d3kiAoPi+F-DTy8i$IY`B;BJ7FC*U};5+ zDEOix-+S-fn#6OWV_RR(0zA0)KI3!--$eQe_fMkOKmz$2QT%)~`aV=?`7IUuIO+r7G?rQ*n3CDoUiZu?cEUnb(WNxiVAX_*0Zt|b5O}QJVivWuNMn@WOzW< zK+HM}h7}BhMy9NaOzpXauf2OU@=>~1H;MW?Oxpk`V*`Dj2j=966a^=NS}&^LP+-C= zD#HeD+z0E%u?&V1pHM>^9ZiK{;QhXl7-Kdf!qfnIent)=0^K!?ak|kE*?WEc`obTu z&Is$^Ll)_uX2!yhJ9%svK5ySu`StY$*8z`aVPl+VHX!zfH-HLMbRTg(;~;Oj%{B3) z$DFuJSc0FdK#?9N;D1zYwetsv`NabLA%Tkp!63>pVNsK+`t|D-ReLXRsKy+a<>3A# zea`j$tjEme7}s?*1E+;rtr94z)Ar?Q65&Pb+*B2`j^BjlW zL`2Lx9F6a@9%5>OZ`aFB0HZ@NMe)@Rsb*+k4T5li>ojmJitx;s*DOl>MVN39v#P)e z12jA$Dx$Anzdmdkvtc%#wNOoe#5CY*&1?F0py9-1vmwec2fAAj_C=fK|9*d8*9GSQ zcW;$RWih*NK%*Xkt^xqX-~aw^&@Ny=<-fWAf@wC!V02_Og`B%8Rhe^QO?JT~3@p@! z&Fjj0!uF)@NE2yQ9fvi^{&5D1SsN!YieH-I?&^}34K zY~Y~9d#z_Qfcs`WOBdu@pvWt#F(-=P=efb zR74PS{8o5DDEmNkgOaFsu~Q* zhQ?Sxc*D1E==B&wmu9tBRUSGoVePu_2lHnlHHC&AX$r*DS`#K4Dk>gM2z@FTu@&_A zU^fzxwi$2%^T7xXX`m=JmoJjeDE{O9?R$R|*V%I^_H<~JAjsHFRZURovTCiRLp?S# zVgJ3KHxa>|Ei;RXRU*^Fsp|E572Ha|wd-6qoE!uwOvQ-VHyEFGre&yAL5QSgofZu< zHKXeKR|M6AqXettLETi*wR%A^gN$^9HI2(>>z$*jNb0=vn860De$X)R@j%;aU9Sr= zRXht=)-!V@HPR^xgMHAniD=F_<^cZFY*Dz*0Fgr)YbEpq+hgrTL_IuVV(rZu+7ygW zQ1@UNqxozkb8S_zVS6nm`u_d{4I*x)nEZy0J>V1o=L{+!X%ko?QK<=0`Sv!p0*F+p zqS;GPKEpFp!#g<4=A0tz9*~uz9LX#c=-^NGsZ15wc7bqCLl@!O6OkbzqAiF+Hc@8H zF|?1F$_x~gL_Ej9C&yeG^$=d$-=muLrmHxk(11VbQDbB_tqDlf$DvEwsi>C|^?aoV za##bv&9ZYMN|3q44G>T#oGNy?=XuaKGXY}{H38om@j(hIrW-f|>9NBpk62^nc2V%!F%A zbM2W`(W?gDfdc7JyVD1>jchdxCl3jYzVG+$nNStc$JP+zcVecZU%$TY=f=$Tx-MqU zBK%AsKW4U<7u7YdkEsCmR`h{C$@-~KoM7Wo0;0fqB{bQv2WimA#{H9B)YFib@B z{l3w?i89D$P+tnm_8m>t7o_*ZkuqVgiGZgWqqzP!9A|V>k7#?K^K*{-`_4p1Yi-(b zfCqP2LDcgs5&imlflI^0u!@8D9Jc}+4PqtcobUHdMc@>nEW-AHW3sra>ihi$L2-=v zJgY|_$PwTk`L4BqiB;w6dSSb{=H(mqsD=-)*1oPQsr+z|P$9kFZ!?|q@{EWK5AgSy z<@^1HG7vL1$|B-1hnl{wuYdmYpG@@n`ihLT_F4~g)c5m14cJVeNc>|&WyZ5tC5>To zj)=fv+4|(YiMm*cOpp{HM*yWBGlsP`%D7M4!OgN^3}5*WRd86|_hV}Ja|4uro;Byh z?pH(+xt=F7QM=4}?Y%I@Q&l`)I%uJ`mc9@y4Z40ftHfJ2({vS|p;Gg^q#S z<*-4g%O5q@Ro(CF(Ij;9}XC{n{+OxDe;X_rQ`$>$-+PLK}9vC0S z!hOH_aG&Lf1MIk<6xFbi+1#7(P&FH4JH#p*M6}BC*d{6>6+IW(`?v@&hsXQocbl1#{9{iAHp zBkjjmWA2nL_`no=YO^U5XtSWxUF-RJeZdF>Z%$@{Ntl>eFc;C@eqGnI9wL73TSdk& z%zKC#QpY(4eChd+2w9*;W-uK9+F+4kd5keJn4NQ&84;h}yfE|p%ucHaEL%GXUmspS z-htwxDuc1J2hITZaNmFb+uxt(fkSm=!6elXd6pgN6CUBtQ~|p%7R;+M&rj1ftpVOu zRi=hxR$+KOjJZ{8b55|y0VQEXfscfaz8MWDhneS?U}mFReSKXK&LsDJH}4r%I;xmF zVMW29Lhu7mGm7#W=Mbc4*O=%tzP?`7o;QY7Q812-5ayu+$3HV@hXLFPz(qtc(KTmg z&M~Py0zP!Ra^J#|g;|lRC==c98_pbD4F3;izOKtRm{$#UueC&ZUYDtXgWCibXi;I3 zpLNaG+8d?AM_8byz%VhmqO;GasQXs6*Y(=I-Q)ZHW?>t)J$!GBpfhUs_9~{M$F4+x zudx@8u6G6ckZh|&203-;z?qFX7B-n15$IXZ^RNiUhj_ja?hqB4)TTdCZ4aUv=RaZj zq2$7Sf;Gq|^%)0Dvjt;*AUYuFO zOjr>!U}oUC5*T~i4FxrDl`8Z@*pe`80E~vD4G86qoTmdR^PngmG3LanIj`yAT{v@7 zDuFv=e`Myr|C_(B=MmMlcbp&%)H2Unk;zOt@b)&vd0rE*N|V{B89DZzN#_; z_Y-#mN<(IW#iXj?_nH|ToY1+_k?){tL(c%{423PqH~ba+8Q@n~3`C>|)5WO{^iahk zp65}~*VhGvO-1Gy#Jsn&Kt(k~+1-J+fV03N@Atbwe0L`D@UPd4;L@YI*7oS06|+kZ zSC!{^fKfn3zSpCwn5NjU%tCB1@gZKTP}S@D%1Ymk*%dsMu@TSfs-m^m7~o$9 zV}MW3$3+c&USuM71STSCila_c-FIgE`uc(o(4k|sD)wyOK}>2EmCN@S1E@~hK&fSt zpD75-M@F8<&?!OR7-Pal32!39mJKS3b6RU_co~ZgtCU5CSrN@+{q%ah=A7-5e?KhJ z{_sSffh!trC}$%bFs52JYN(J z9<<2AfH_2+Q8PLqQNfX(A1ZCpIcW(_Vfccef%54GF$qKApKWGW&sxV>s6#LC15xfa z1l$%?%&k3XN_!nk&b1cgYGaP{*uFmq2J{?xEaSO((EZo5LPWzI+-jBfb&E+*hD0cM)OV+uhC zumuwWBbHg9qG`4_(Drky1EH9rf^wA@l>vmc;PydpEGI|ov#kK|?0O;V(DqzJqiq(s z6WWQ@(C5iV_S(nuFbK#AHX}r6c0UcMpGag(N|9PaCmW718ac{ANbOkUzTXf-G4qGr zlSeGQ-MI*-#X+rsdP`M+MOs-pv~@GYB7*6Hi1rXWi>cFi)btZcjZOl_6?uFuiOM&k z+**jozoSe8B|IM+W7M2_aw7oW!&q}Khp9h2`S<#Kg(msrVKC;&?1ITngALZMzS#RP zp@r|0h^Wf@zPqhyidW-8*b|AWlD4nrkNk^qC&r~jgjXgaI!lIHrj8VDyz;^t6?kXi zQ6vz%T?pvC>9|k!5UC$`oBB0HJ`?vJjLJEuFh6@$7GgTFo$?7=m6OAU96+@yk`kUS$em!(H5-T7 z-9hvmbM)AU`{}~g6vTr*wOICE&tA-=re+4w21u)D6`%EdR4UNSxQD92)qt50EqC8H zz=scy%M6VwMK~Uj9U>NWTDsQ0Ha@3uErmC{C8U7fgDy2;zCLxvM<9 zdYDO#^(VpIz53tw!xBM7gSZ|wgK6b};Y%?YXvf(K2_o|Cgq|-8gf}XJfVMvhI9K&S zTn5ZahnX0nN_HVOY^=TMtZ$5khzN?EW{hO4wdWi*Mzz0- zpmzs{QrkGJC)6#`0MrcIix@P56X+;!ZxaB*nm8Flx46pX;y-2X3jD0=lPsE zpfqmZM98>y=}MHYIWuCdyKB&9greRexRK(y02EPGKB+_)dA^?;$gl?jkJ-!sSg9Gr zabt{OQ%phj=Tpq#mtvzsX}`Azd_#Mk!Iyx|Mgx7vq-*bey)K4b#SwKK8$>2zRheU8 zWcyLJ^+1;eZZT``wU?QJlRd@&nXs}DO7Ums!k_+!DjGJ_ETcybCA|e=GF!3A{ z+JgIjG7>Bx7$%P~Z5r+;Yo^#-I0fiwws?Fevh}N^-@An+@^}4FsgQ%vrbDazON z+I!zOB4ed7dJ(X&m^m}ndQ=3(DH78PxREIl|KlJ30EQV^SRswTR)H;@83U0Q%&Pi& zT}-mq#-`7GS3AEREu%*aGgHe*4=+M~00ByZLCabjE8(+|xjWEEIcBTaj@{!^T~bjN zVcT^N6~V|+4aQmJ+o6-EBxV74M$AKvswgo-9!%7O8RS%YJNECr`=C;RKMD-hKAt)Z zWvIc>1U#Rei4C;Hq^^DHi6Vx%B+#TAJGDf;r*p4o{tuyl-w3Md!?T#wd^ z9cy%qj9Xb2F|RpnqF)5YLf8w6#u&m3nGVi-Yzr{j11^pIp$?t~%^D>^hRrOX!avW$ z)K-Mx*9f;^v%BBV^S57rgQ3HHKf`Q}0WKvVdln=h74RP_R_*Y#)1wP|;J6Y)R(`48d}l0c@;nV+HV4CHbjPeWh3c}h&!C(#@i z^=u(}B;GPr)adw8m9@8HW1$n7rK&`PG*Z+(!wgnkA_CL+*XzOxr%G_%4&CuD9vCQW zD^rJoECf*Uk3aqpVTa*(CJ=M#xbFhN3H;@+uj@0ec-G=WUPjXZkMxKbHbfY)>{La> z&)(j#Hq?lUh@IH*IcFeb_&^P224t;~+02Z%t_w53IpKppz}W@t(7}oa-~yVoK?-U) z41pP0S(UZd{=BG|iQ_KekwoO{^}^}K%qj|(bqsq)M|3%T?9D}ss9A|-D3gy{VnJ*f z5uY%IIVWB}VV!e;^FHQeVj>=62!rvtF=e!2RHVn-py8<#rsl^r8e0pxdsT(pmbud# zw!6FIC!<53bLb&`Hw8rvYY_krif}wN2){6H#gkflW0;1}O1u)j_jO(1vew#6j6a!`b4-i}Aa`J5 zII~L2gk{W$eQuvohkJ-96NSTb;=)7|a27(Ri-1kRT)#ju0uTO#Gs5;}p?vJ#v1Mp5 zGYy<}0T%w5Ghv`urw5&LvPe~4*QKhhN0Z)lvkEg|aJ8G9k~wUc>TLb2T<~OLZdK5j zrlz7M7Lj8Pv+=%fQzhc-dVvD%-b}(x&9M?htESmC3|SuKSnm??aJV&r^|R@SKR2Q4nF$gS{JmYIde%1n(?rQ!FBe zQtNpZX4E2b<~2Q35MjVj?yhRhwAr1OOepz#t+KF0B$PP7XEGDOSDn8A@(%`p(D4i# zc^q@AYHz>h!~xa}5cpQP1K@+t5>O7*H<5|P6!o3`OT;1iId}mC5(_?tVD9kNMxz5y zBrxcNShbx3_TCgE+$J2toY5&1+}stbO4x40Xa|i28nkNiJ`+KHL>N)32&DLxefkn} z_|9%YT5WXA$%v{>LXQIRGf_cBJj_%LCR8Ry)fBHb%Q_-XfU(`r$!RRG@Ti#KLUztD z4|MG~iA6P!Y$e;4DywK-7g1Y!T-U@iQW2muz8&QPFeu1lnIY{`EVc%eqUmjf*A{3b zpkL52ybf`+L6f|M$QU(=iPZ)84VP z1SJs)?J5#gDiTGCS%EVGgc0tr!aV0hhjk#lyzhHV1C2pgyp2s5^CfsV!}KYu+#@nT zFg=>V;~@$ItE^M|P*IIJm>Jq76Tv@XX#pX{ivlzQ%YC~e#0sniY_G@l8!C^o>Z-)Vt?Y+Z8gx6ZCJch~f7#L%0Z~tUa zuuhU`{y;NuE*u$9hBKYEXW7}wjdv|%4wq^h7u zsY>)@QKisPo+0fR2FMs5f0^Y0a0XPIZm*$(QxP#)YiDM0kuXTW7#|Ayyd%3I82MGr zYkqRsV1E$lI7R@}fD+xabwJ!zI~+1tIDsRi2t7?^E+`2^Y?yoSq19!^UK{J#hT$xf zio`&hz(G>1%(a$BYi_#NjD!>vT?kHn^xQ>owgN&%(i=Y8+%uksF-Rie@)l3;@Am)e}B7gpzM`}9SJ81dVP;bDm){M zpzs92oHR4&_#j5XQI{PvLCmz)V`>0|p0!|72V&%WT~%#_LG4TUXUD>S36kR2am~wY zfKbfDzBai38TtCUw(rQquujc24tA25?GCsZq7c}<(P^!>JGFP#6CQi}=?o|%8K6carrdK*VWF(_tZ3U3 zssdG1MADP8R1NGS5&h%)k4n1c#VoPoxgQ%tMO%!ONlf?qfe*rZZa|J8`VtX+yoy<{ zKCgLYmSQ}+Hjw42x~}Va_Cge^+TPB^!b+$IVOki8JD$he1`W`#@%{aNo~^2L%+?dk zNi7EM7?|gNm}QPhT&6}$a52E7T}7GYxo>8^uB(bX5}Gwt<)%i9fLR2X2qrE>czt~L zoWRUHoT+F2fOp22==D`qbzmyK_Z~KS0E6NqKFyzGBw&5Rw6e!_?fxJl%#vAq`TaZ{ z7Qn*Q^Bc@LKyKX2;n&%de>F%%pJ%PLu{Nrpa&3~N*^oAU=%Rm)NlcY#Y9AHk7!w>t zA;J9=ZrTWdZX07g%RPGrV=5w;I)I%B^(7Od6s?{4KNE}t$I13IYhpsKd~F#s%3MS4 znPbk(Hk&8$jL7+{FiD5aHCxGTD_3Je6NQrJ5!t9M6-mxWj(Vtch^LFkAMySC^8N=t zKfXV&PlnOb*a``+KKewPFDJfVDHODf?Q-#n&+XNj1=Y}QSE>c8ADeq~oiicVz;*p~ zx~y@>%%6AdJC7sHZgtK>Hm6J0pKgk`KL2mi?0nAyT?v--lrdLTsak9nyaKzjifpn| z`rNIN(|-Q!*#RBo^2TIr8EDivA5?Ier**i9YDKrAM*OQ6Tj_cw#IETQvo%k>|v7{ZJ^Kj~rvm#vAHM5N>ABO%TagaL=JD zCW1LHXQ?RtajzxrRp+*F@oCZV^d2O@xb~HMS9!2-_m}smqSA;bo3T`A`Zzs6z-p8x zRxpRO`;xi5Mo*UXSr@w9tOn?5+bKr^%%IuN#qV6-3DMr+7b4*_-^|B_O8v9h!5@A( zgeNiO^WMim`d@tqE%a)igcLB-U3!^akl&Rjf3ptkh`#T6D|Gh$aty3L1oJ#OqX_^- zsze7G(ssNEk#4(=^fkh8_id#WsqRK%#V@fvLoW$hr|>W1bst?X7a`E~OG$_DR$0)U z>EC<}SvP!-$ei|4k0jazGb=6G&HSjHPYO2i2N7|8+_%6avSyPYc}6L$DBX^W9-lc zT2Y(^o~SBBKem(f)~C9B`fzZdPBM5eVzs&UlIKRoRDd}`=;;vWDfG|$$J`LjNHHRn z(mk)`&~F|wG45Z$J-gcDAN53r8Z@%lo+3xNMKF_`X-9*6KNflw%z6$Q7)sjhm#Wxz zJK?lH_wIS!1c~wn)8H`k&4O%rC2wdAy4U<%Xt;z+Jz3X=_DRxV<00{r4>>Odc33Ob z8kiP~cN~*w;(z=qj}x9oU{DD+I^456R<=Cu&P{(6E!wL%{TAnqr$fHe?(&fa5`wMh^)OSV0l0-q`F?gCn@9 zJ4zifNLvb}Czp0{_M<*oC`jxcK zzIP>is;tZAWSovvS9dk0wSM2BlBr`lLW-M+chJSk2*XKBkDrZOeWm7HI#%fpz2Erkysl~QtOh~cJE0{YuI5jI@PD-d2LKM0Y!GFGBLVFWqi{8 z5s#+%j83G9ed*?4Il9tmgQ+D_eH(|w`_}C`lLsyU7Jqlb{e}?Xko!Jq>Q92839|~d z{*vJud0Ld?_gdLtyZJH_(D;2z+Z4Fp_wh)!aH!0}hQ*imiHfQQ1)PWFR&Lo&`!iH2 z3aPf^P3Yl-bu?~BHfrjMe0hU?yqsixAvQakk5WwO)!gs=Vhd6j5&0rIVXZCSpy)O2 z?UmhG73|By1 z`zO2=^f_{DAVIla1enZVFxjX~DmPF9!X3nTkdwJcM{2(Wct|EXZ2b;d9Zcz9#(Sta zw4oK)Hah)UyT9X`kkIHf^(z { + try { + const response = await fetch(img.src); + const blob = await response.blob(); + const file = new File([blob], 'image.png', { type: 'image/png' }); + handleImageUpload({ target: { files: [file] } }); + } catch (error) { + console.error('Error fetching image:', error); + } + }; div.appendChild(img); } else { div.innerHTML = DOMPurify.sanitize(marked.parse(content)); @@ -207,7 +217,7 @@

- diff --git a/exo/tinychat/index.js b/exo/tinychat/index.js index fb767369..c839d3d7 100644 --- a/exo/tinychat/index.js +++ b/exo/tinychat/index.js @@ -243,6 +243,7 @@ document.addEventListener("alpine:init", () => { body: JSON.stringify({ "model": 'stable-diffusion-2-1-base', "prompt": apiMessages[apiMessages.length - 1].content, + "image_url": this.imageUrl }), }); From 0f1024490044c31ec9db006a1b5847d60a1082ba Mon Sep 17 00:00:00 2001 From: Pranav Veldurthi Date: Wed, 4 Dec 2024 22:52:48 -0500 Subject: [PATCH 07/44] Merge latest --- build/lib/exo/__init__.py | 1 + build/lib/exo/api/__init__.py | 1 + build/lib/exo/api/chatgpt_api.py | 539 ++++++++ build/lib/exo/apputil/__init__.py | 1 + build/lib/exo/apputil/anim.py | 161 +++ build/lib/exo/download/__init__.py | 0 build/lib/exo/download/download_progress.py | 61 + build/lib/exo/download/hf/__init__.py | 0 build/lib/exo/download/hf/hf_helpers.py | 447 ++++++ .../lib/exo/download/hf/hf_shard_download.py | 79 ++ build/lib/exo/download/shard_download.py | 36 + build/lib/exo/helpers.py | 274 ++++ build/lib/exo/inference/__init__.py | 0 .../exo/inference/debug_inference_engine.py | 58 + .../exo/inference/dummy_inference_engine.py | 34 + build/lib/exo/inference/inference_engine.py | 58 + build/lib/exo/inference/mlx/__init__.py | 0 .../mlx/models/StableDiffusionPipeline.py | 307 +++++ .../lib/exo/inference/mlx/models/__init__.py | 0 build/lib/exo/inference/mlx/models/base.py | 9 + .../exo/inference/mlx/models/deepseek_v2.py | 127 ++ build/lib/exo/inference/mlx/models/gemma2.py | 118 ++ build/lib/exo/inference/mlx/models/llama.py | 125 ++ build/lib/exo/inference/mlx/models/llava.py | 585 ++++++++ build/lib/exo/inference/mlx/models/qwen2.py | 128 ++ .../inference/mlx/sharded_inference_engine.py | 77 ++ build/lib/exo/inference/mlx/sharded_utils.py | 256 ++++ build/lib/exo/inference/mlx/stateful_model.py | 45 + .../exo/inference/mlx/test_sharded_llama.py | 40 + .../exo/inference/mlx/test_sharded_llava.py | 64 + .../exo/inference/mlx/test_sharded_model.py | 52 + build/lib/exo/inference/shard.py | 39 + .../inference/test_dummy_inference_engine.py | 53 + .../exo/inference/test_inference_engine.py | 56 + build/lib/exo/inference/tinygrad/__init__.py | 0 build/lib/exo/inference/tinygrad/inference.py | 99 ++ .../exo/inference/tinygrad/models/__init__.py | 0 .../exo/inference/tinygrad/models/llama.py | 282 ++++ .../exo/inference/tinygrad/stateful_model.py | 42 + .../inference/tinygrad/tinygrad_helpers.py | 52 + build/lib/exo/inference/tokenizers.py | 64 + build/lib/exo/main.py | 274 ++++ build/lib/exo/models.py | 151 ++ build/lib/exo/networking/__init__.py | 5 + build/lib/exo/networking/discovery.py | 17 + build/lib/exo/networking/grpc/__init__.py | 0 .../exo/networking/grpc/grpc_peer_handle.py | 173 +++ build/lib/exo/networking/grpc/grpc_server.py | 147 ++ .../exo/networking/grpc/node_service_pb2.py | 78 ++ .../networking/grpc/node_service_pb2_grpc.py | 360 +++++ build/lib/exo/networking/manual/__init__.py | 0 .../exo/networking/manual/manual_discovery.py | 71 + .../manual/network_topology_config.py | 31 + .../manual/test_manual_discovery.py | 103 ++ .../manual/test_network_topology_config.py | 49 + build/lib/exo/networking/peer_handle.py | 56 + build/lib/exo/networking/server.py | 11 + .../lib/exo/networking/tailscale/__init__.py | 0 .../tailscale/tailscale_discovery.py | 178 +++ .../networking/tailscale/tailscale_helpers.py | 125 ++ .../tailscale/test_tailscale_discovery.py | 43 + build/lib/exo/networking/udp/__init__.py | 0 .../exo/networking/udp/test_udp_discovery.py | 77 ++ build/lib/exo/networking/udp/udp_discovery.py | 215 +++ build/lib/exo/orchestration/__init__.py | 4 + build/lib/exo/orchestration/node.py | 47 + build/lib/exo/orchestration/standard_node.py | 488 +++++++ build/lib/exo/orchestration/test_node.py | 57 + build/lib/exo/stats/__init__.py | 0 build/lib/exo/stats/metrics.py | 29 + build/lib/exo/test_callbacks.py | 50 + build/lib/exo/tinychat/common.css | 130 ++ build/lib/exo/tinychat/favicon.svg | 25 + build/lib/exo/tinychat/index.css | 484 +++++++ build/lib/exo/tinychat/index.html | 255 ++++ build/lib/exo/tinychat/index.js | 687 ++++++++++ .../toolkit@1.0.2/dist/cdn.min.js | 1 + .../npm/@alpinejs/focus@3.x.x/dist/cdn.min.js | 15 + .../@alpinejs/intersect@3.x.x/dist/cdn.min.js | 1 + .../npm/purecss@3.0.0/build/base-min.css | 11 + .../libs/font-awesome/6.5.2/css/all.min.css | 9 + .../6.5.2/webfonts/fa-brands-400.ttf | Bin 0 -> 209128 bytes .../6.5.2/webfonts/fa-brands-400.woff2 | Bin 0 -> 117852 bytes .../6.5.2/webfonts/fa-regular-400.ttf | Bin 0 -> 67860 bytes .../6.5.2/webfonts/fa-regular-400.woff2 | Bin 0 -> 25392 bytes .../6.5.2/webfonts/fa-solid-900.ttf | Bin 0 -> 420332 bytes .../6.5.2/webfonts/fa-solid-900.woff2 | Bin 0 -> 156400 bytes .../6.5.2/webfonts/fa-v4compatibility.ttf | Bin 0 -> 10832 bytes .../6.5.2/webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4792 bytes .../tinychat/static/fonts.googleapis.com/css2 | 7 + .../cdn-assets@11.9.0/highlight.min.js | 1213 +++++++++++++++++ .../cdn-assets@11.9.0/styles/vs2015.min.css | 1 + .../dist/alpine-autosize.min.js | 2 + .../unpkg.com/alpinejs@3.x.x/dist/cdn.min.js | 5 + .../dompurify@3.1.5/dist/purify.min.js | 3 + .../marked-highlight@2.1.2/lib/index.umd.js | 97 ++ .../unpkg.com/marked@13.0.0/marked.min.js | 6 + build/lib/exo/tinychat/update_deps.py | 93 ++ build/lib/exo/topology/__init__.py | 0 build/lib/exo/topology/device_capabilities.py | 217 +++ .../lib/exo/topology/partitioning_strategy.py | 40 + ...g_memory_weighted_partitioning_strategy.py | 18 + .../exo/topology/test_device_capabilities.py | 91 ++ build/lib/exo/topology/test_map_partitions.py | 81 ++ ...g_memory_weighted_partitioning_strategy.py | 90 ++ build/lib/exo/topology/topology.py | 49 + build/lib/exo/viz/__init__.py | 0 build/lib/exo/viz/test_topology_viz.py | 129 ++ build/lib/exo/viz/topology_viz.py | 307 +++++ 109 files changed, 11276 insertions(+) create mode 100644 build/lib/exo/__init__.py create mode 100644 build/lib/exo/api/__init__.py create mode 100644 build/lib/exo/api/chatgpt_api.py create mode 100644 build/lib/exo/apputil/__init__.py create mode 100644 build/lib/exo/apputil/anim.py create mode 100644 build/lib/exo/download/__init__.py create mode 100644 build/lib/exo/download/download_progress.py create mode 100644 build/lib/exo/download/hf/__init__.py create mode 100644 build/lib/exo/download/hf/hf_helpers.py create mode 100644 build/lib/exo/download/hf/hf_shard_download.py create mode 100644 build/lib/exo/download/shard_download.py create mode 100644 build/lib/exo/helpers.py create mode 100644 build/lib/exo/inference/__init__.py create mode 100644 build/lib/exo/inference/debug_inference_engine.py create mode 100644 build/lib/exo/inference/dummy_inference_engine.py create mode 100644 build/lib/exo/inference/inference_engine.py create mode 100644 build/lib/exo/inference/mlx/__init__.py create mode 100644 build/lib/exo/inference/mlx/models/StableDiffusionPipeline.py create mode 100644 build/lib/exo/inference/mlx/models/__init__.py create mode 100644 build/lib/exo/inference/mlx/models/base.py create mode 100644 build/lib/exo/inference/mlx/models/deepseek_v2.py create mode 100644 build/lib/exo/inference/mlx/models/gemma2.py create mode 100644 build/lib/exo/inference/mlx/models/llama.py create mode 100644 build/lib/exo/inference/mlx/models/llava.py create mode 100644 build/lib/exo/inference/mlx/models/qwen2.py create mode 100644 build/lib/exo/inference/mlx/sharded_inference_engine.py create mode 100644 build/lib/exo/inference/mlx/sharded_utils.py create mode 100644 build/lib/exo/inference/mlx/stateful_model.py create mode 100644 build/lib/exo/inference/mlx/test_sharded_llama.py create mode 100644 build/lib/exo/inference/mlx/test_sharded_llava.py create mode 100644 build/lib/exo/inference/mlx/test_sharded_model.py create mode 100644 build/lib/exo/inference/shard.py create mode 100644 build/lib/exo/inference/test_dummy_inference_engine.py create mode 100644 build/lib/exo/inference/test_inference_engine.py create mode 100644 build/lib/exo/inference/tinygrad/__init__.py create mode 100644 build/lib/exo/inference/tinygrad/inference.py create mode 100644 build/lib/exo/inference/tinygrad/models/__init__.py create mode 100644 build/lib/exo/inference/tinygrad/models/llama.py create mode 100644 build/lib/exo/inference/tinygrad/stateful_model.py create mode 100644 build/lib/exo/inference/tinygrad/tinygrad_helpers.py create mode 100644 build/lib/exo/inference/tokenizers.py create mode 100644 build/lib/exo/main.py create mode 100644 build/lib/exo/models.py create mode 100644 build/lib/exo/networking/__init__.py create mode 100644 build/lib/exo/networking/discovery.py create mode 100644 build/lib/exo/networking/grpc/__init__.py create mode 100644 build/lib/exo/networking/grpc/grpc_peer_handle.py create mode 100644 build/lib/exo/networking/grpc/grpc_server.py create mode 100644 build/lib/exo/networking/grpc/node_service_pb2.py create mode 100644 build/lib/exo/networking/grpc/node_service_pb2_grpc.py create mode 100644 build/lib/exo/networking/manual/__init__.py create mode 100644 build/lib/exo/networking/manual/manual_discovery.py create mode 100644 build/lib/exo/networking/manual/network_topology_config.py create mode 100644 build/lib/exo/networking/manual/test_manual_discovery.py create mode 100644 build/lib/exo/networking/manual/test_network_topology_config.py create mode 100644 build/lib/exo/networking/peer_handle.py create mode 100644 build/lib/exo/networking/server.py create mode 100644 build/lib/exo/networking/tailscale/__init__.py create mode 100644 build/lib/exo/networking/tailscale/tailscale_discovery.py create mode 100644 build/lib/exo/networking/tailscale/tailscale_helpers.py create mode 100644 build/lib/exo/networking/tailscale/test_tailscale_discovery.py create mode 100644 build/lib/exo/networking/udp/__init__.py create mode 100644 build/lib/exo/networking/udp/test_udp_discovery.py create mode 100644 build/lib/exo/networking/udp/udp_discovery.py create mode 100644 build/lib/exo/orchestration/__init__.py create mode 100644 build/lib/exo/orchestration/node.py create mode 100644 build/lib/exo/orchestration/standard_node.py create mode 100644 build/lib/exo/orchestration/test_node.py create mode 100644 build/lib/exo/stats/__init__.py create mode 100644 build/lib/exo/stats/metrics.py create mode 100644 build/lib/exo/test_callbacks.py create mode 100644 build/lib/exo/tinychat/common.css create mode 100644 build/lib/exo/tinychat/favicon.svg create mode 100644 build/lib/exo/tinychat/index.css create mode 100644 build/lib/exo/tinychat/index.html create mode 100644 build/lib/exo/tinychat/index.js create mode 100644 build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpine-collective/toolkit@1.0.2/dist/cdn.min.js create mode 100644 build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js create mode 100644 build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/intersect@3.x.x/dist/cdn.min.js create mode 100644 build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/purecss@3.0.0/build/base-min.css create mode 100644 build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css create mode 100644 build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.ttf create mode 100644 build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.woff2 create mode 100644 build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.ttf create mode 100644 build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.woff2 create mode 100644 build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.ttf create mode 100644 build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.woff2 create mode 100644 build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-v4compatibility.ttf create mode 100644 build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-v4compatibility.woff2 create mode 100644 build/lib/exo/tinychat/static/fonts.googleapis.com/css2 create mode 100644 build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js create mode 100644 build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/vs2015.min.css create mode 100644 build/lib/exo/tinychat/static/unpkg.com/@marcreichel/alpine-autosize@1.3.x/dist/alpine-autosize.min.js create mode 100644 build/lib/exo/tinychat/static/unpkg.com/alpinejs@3.x.x/dist/cdn.min.js create mode 100644 build/lib/exo/tinychat/static/unpkg.com/dompurify@3.1.5/dist/purify.min.js create mode 100644 build/lib/exo/tinychat/static/unpkg.com/marked-highlight@2.1.2/lib/index.umd.js create mode 100644 build/lib/exo/tinychat/static/unpkg.com/marked@13.0.0/marked.min.js create mode 100644 build/lib/exo/tinychat/update_deps.py create mode 100644 build/lib/exo/topology/__init__.py create mode 100644 build/lib/exo/topology/device_capabilities.py create mode 100644 build/lib/exo/topology/partitioning_strategy.py create mode 100644 build/lib/exo/topology/ring_memory_weighted_partitioning_strategy.py create mode 100644 build/lib/exo/topology/test_device_capabilities.py create mode 100644 build/lib/exo/topology/test_map_partitions.py create mode 100644 build/lib/exo/topology/test_ring_memory_weighted_partitioning_strategy.py create mode 100644 build/lib/exo/topology/topology.py create mode 100644 build/lib/exo/viz/__init__.py create mode 100644 build/lib/exo/viz/test_topology_viz.py create mode 100644 build/lib/exo/viz/topology_viz.py diff --git a/build/lib/exo/__init__.py b/build/lib/exo/__init__.py new file mode 100644 index 00000000..596559f3 --- /dev/null +++ b/build/lib/exo/__init__.py @@ -0,0 +1 @@ +from exo.helpers import DEBUG as DEBUG, DEBUG_DISCOVERY as DEBUG_DISCOVERY, VERSION as VERSION \ No newline at end of file diff --git a/build/lib/exo/api/__init__.py b/build/lib/exo/api/__init__.py new file mode 100644 index 00000000..660e7507 --- /dev/null +++ b/build/lib/exo/api/__init__.py @@ -0,0 +1 @@ +from exo.api.chatgpt_api import ChatGPTAPI as ChatGPTAPI diff --git a/build/lib/exo/api/chatgpt_api.py b/build/lib/exo/api/chatgpt_api.py new file mode 100644 index 00000000..ee75aea6 --- /dev/null +++ b/build/lib/exo/api/chatgpt_api.py @@ -0,0 +1,539 @@ +import uuid +import time +import asyncio +import json +from pathlib import Path +from transformers import AutoTokenizer +from typing import List, Literal, Union, Dict +from aiohttp import web +import aiohttp_cors +import traceback +import signal +from exo import DEBUG, VERSION +from exo.download.download_progress import RepoProgressEvent +from exo.helpers import PrefixDict, shutdown, get_exo_images_dir +from exo.inference.tokenizers import resolve_tokenizer +from exo.orchestration import Node +from exo.models import build_base_shard, model_cards, get_repo, pretty_name, get_supported_models +from exo.apputil import create_animation_mp4 +from typing import Callable, Optional +from PIL import Image +import numpy as np +import base64 +from io import BytesIO +import mlx.core as mx +import tempfile + +class Message: + def __init__(self, role: str, content: Union[str, List[Dict[str, Union[str, Dict[str, str]]]]]): + self.role = role + self.content = content + + def to_dict(self): + return {"role": self.role, "content": self.content} + + + +class ChatCompletionRequest: + def __init__(self, model: str, messages: List[Message], temperature: float): + self.model = model + self.messages = messages + self.temperature = temperature + + def to_dict(self): + return {"model": self.model, "messages": [message.to_dict() for message in self.messages], "temperature": self.temperature} + + +def generate_completion( + chat_request: ChatCompletionRequest, + tokenizer, + prompt: str, + request_id: str, + tokens: List[int], + stream: bool, + finish_reason: Union[Literal["length", "stop"], None], + object_type: Literal["chat.completion", "text_completion"], +) -> dict: + completion = { + "id": f"chatcmpl-{request_id}", + "object": object_type, + "created": int(time.time()), + "model": chat_request.model, + "system_fingerprint": f"exo_{VERSION}", + "choices": [{ + "index": 0, + "message": {"role": "assistant", "content": tokenizer.decode(tokens)}, + "logprobs": None, + "finish_reason": finish_reason, + }], + } + + if not stream: + completion["usage"] = { + "prompt_tokens": len(tokenizer.encode(prompt)), + "completion_tokens": len(tokens), + "total_tokens": len(tokenizer.encode(prompt)) + len(tokens), + } + + choice = completion["choices"][0] + if object_type.startswith("chat.completion"): + key_name = "delta" if stream else "message" + choice[key_name] = {"role": "assistant", "content": tokenizer.decode(tokens)} + elif object_type == "text_completion": + choice["text"] = tokenizer.decode(tokens) + else: + ValueError(f"Unsupported response type: {object_type}") + + return completion + + +def remap_messages(messages: List[Message]) -> List[Message]: + remapped_messages = [] + last_image = None + for message in messages: + if not isinstance(message.content, list): + remapped_messages.append(message) + continue + + remapped_content = [] + for content in message.content: + if isinstance(content, dict): + if content.get("type") in ["image_url", "image"]: + image_url = content.get("image_url", {}).get("url") or content.get("image") + if image_url: + last_image = {"type": "image", "image": image_url} + remapped_content.append({"type": "text", "text": "[An image was uploaded but is not displayed here]"}) + else: + remapped_content.append(content) + else: + remapped_content.append(content) + remapped_messages.append(Message(role=message.role, content=remapped_content)) + + if last_image: + # Replace the last image placeholder with the actual image content + for message in reversed(remapped_messages): + for i, content in enumerate(message.content): + if isinstance(content, dict): + if content.get("type") == "text" and content.get("text") == "[An image was uploaded but is not displayed here]": + message.content[i] = last_image + return remapped_messages + + return remapped_messages + + +def build_prompt(tokenizer, _messages: List[Message]): + messages = remap_messages(_messages) + prompt = tokenizer.apply_chat_template([m.to_dict() for m in messages], tokenize=False, add_generation_prompt=True) + for message in messages: + if not isinstance(message.content, list): + continue + + return prompt + + +def parse_message(data: dict): + if "role" not in data or "content" not in data: + raise ValueError(f"Invalid message: {data}. Must have 'role' and 'content'") + return Message(data["role"], data["content"]) + + +def parse_chat_request(data: dict, default_model: str): + return ChatCompletionRequest( + data.get("model", default_model), + [parse_message(msg) for msg in data["messages"]], + data.get("temperature", 0.0), + ) + + +class PromptSession: + def __init__(self, request_id: str, timestamp: int, prompt: str): + self.request_id = request_id + self.timestamp = timestamp + self.prompt = prompt + +class ChatGPTAPI: + def __init__(self, node: Node, inference_engine_classname: str, response_timeout: int = 90, on_chat_completion_request: Callable[[str, ChatCompletionRequest, str], None] = None, default_model: Optional[str] = None): + self.node = node + self.inference_engine_classname = inference_engine_classname + self.response_timeout = response_timeout + self.on_chat_completion_request = on_chat_completion_request + self.app = web.Application(client_max_size=100*1024*1024) # 100MB to support image upload + self.prompts: PrefixDict[str, PromptSession] = PrefixDict() + self.prev_token_lens: Dict[str, int] = {} + self.stream_tasks: Dict[str, asyncio.Task] = {} + self.default_model = default_model or "llama-3.2-1b" + + cors = aiohttp_cors.setup(self.app) + cors_options = aiohttp_cors.ResourceOptions( + allow_credentials=True, + expose_headers="*", + allow_headers="*", + allow_methods="*", + ) + cors.add(self.app.router.add_get("/models", self.handle_get_models), {"*": cors_options}) + cors.add(self.app.router.add_get("/v1/models", self.handle_get_models), {"*": cors_options}) + cors.add(self.app.router.add_post("/chat/token/encode", self.handle_post_chat_token_encode), {"*": cors_options}) + cors.add(self.app.router.add_post("/v1/chat/token/encode", self.handle_post_chat_token_encode), {"*": cors_options}) + cors.add(self.app.router.add_post("/chat/completions", self.handle_post_chat_completions), {"*": cors_options}) + cors.add(self.app.router.add_post("/v1/chat/completions", self.handle_post_chat_completions), {"*": cors_options}) + cors.add(self.app.router.add_post("/v1/image/generations", self.handle_post_image_generations), {"*": cors_options}) + cors.add(self.app.router.add_get("/v1/download/progress", self.handle_get_download_progress), {"*": cors_options}) + cors.add(self.app.router.add_get("/modelpool", self.handle_model_support), {"*": cors_options}) + cors.add(self.app.router.add_get("/healthcheck", self.handle_healthcheck), {"*": cors_options}) + cors.add(self.app.router.add_post("/quit", self.handle_quit), {"*": cors_options}) + cors.add(self.app.router.add_post("/create_animation", self.handle_create_animation), {"*": cors_options}) + cors.add(self.app.router.add_post("/download", self.handle_post_download), {"*": cors_options}) + + + if "__compiled__" not in globals(): + self.static_dir = Path(__file__).parent.parent/"tinychat" + self.app.router.add_get("/", self.handle_root) + self.app.router.add_static("/", self.static_dir, name="static") + self.app.router.add_static('/images/', get_exo_images_dir(), name='static_images') + + self.app.middlewares.append(self.timeout_middleware) + self.app.middlewares.append(self.log_request) + + async def handle_quit(self, request): + if DEBUG>=1: print("Received quit signal") + response = web.json_response({"detail": "Quit signal received"}, status=200) + await response.prepare(request) + await response.write_eof() + await shutdown(signal.SIGINT, asyncio.get_event_loop(), self.node.server) + + async def timeout_middleware(self, app, handler): + async def middleware(request): + try: + return await asyncio.wait_for(handler(request), timeout=self.response_timeout) + except asyncio.TimeoutError: + return web.json_response({"detail": "Request timed out"}, status=408) + + return middleware + + async def log_request(self, app, handler): + async def middleware(request): + if DEBUG >= 2: print(f"Received request: {request.method} {request.path}") + return await handler(request) + + return middleware + + async def handle_root(self, request): + return web.FileResponse(self.static_dir/"index.html") + + async def handle_healthcheck(self, request): + return web.json_response({"status": "ok"}) + + async def handle_model_support(self, request): + return web.json_response({ + "model pool": { + model_name: pretty_name.get(model_name, model_name) + for model_name in get_supported_models(self.node.topology_inference_engines_pool) + } + }) + + async def handle_get_models(self, request): + return web.json_response([{"id": model_name, "object": "model", "owned_by": "exo", "ready": True} for model_name, _ in model_cards.items()]) + + async def handle_post_chat_token_encode(self, request): + data = await request.json() + shard = build_base_shard(self.default_model, self.inference_engine_classname) + messages = [parse_message(msg) for msg in data.get("messages", [])] + tokenizer = await resolve_tokenizer(get_repo(shard.model_id, self.inference_engine_classname)) + return web.json_response({"length": len(build_prompt(tokenizer, messages)[0])}) + + async def handle_get_download_progress(self, request): + progress_data = {} + for node_id, progress_event in self.node.node_download_progress.items(): + if isinstance(progress_event, RepoProgressEvent): + progress_data[node_id] = progress_event.to_dict() + else: + print(f"Unknown progress event type: {type(progress_event)}. {progress_event}") + return web.json_response(progress_data) + + async def handle_post_chat_completions(self, request): + data = await request.json() + if DEBUG >= 2: print(f"Handling chat completions request from {request.remote}: {data}") + stream = data.get("stream", False) + chat_request = parse_chat_request(data, self.default_model) + if chat_request.model and chat_request.model.startswith("gpt-"): # to be compatible with ChatGPT tools, point all gpt- model requests to default model + chat_request.model = self.default_model + if not chat_request.model or chat_request.model not in model_cards: + if DEBUG >= 1: print(f"Invalid model: {chat_request.model}. Supported: {list(model_cards.keys())}. Defaulting to {self.default_model}") + chat_request.model = self.default_model + shard = build_base_shard(chat_request.model, self.inference_engine_classname) + if not shard: + supported_models = [model for model, info in model_cards.items() if self.inference_engine_classname in info.get("repo", {})] + return web.json_response( + {"detail": f"Unsupported model: {chat_request.model} with inference engine {self.inference_engine_classname}. Supported models for this engine: {supported_models}"}, + status=400, + ) + + tokenizer = await resolve_tokenizer(get_repo(shard.model_id, self.inference_engine_classname)) + if DEBUG >= 4: print(f"Resolved tokenizer: {tokenizer}") + + prompt = build_prompt(tokenizer, chat_request.messages) + request_id = str(uuid.uuid4()) + if self.on_chat_completion_request: + try: + self.on_chat_completion_request(request_id, chat_request, prompt) + except Exception as e: + if DEBUG >= 2: traceback.print_exc() + # request_id = None + # match = self.prompts.find_longest_prefix(prompt) + # if match and len(prompt) > len(match[1].prompt): + # if DEBUG >= 2: + # print(f"Prompt for request starts with previous prompt {len(match[1].prompt)} of {len(prompt)}: {match[1].prompt}") + # request_id = match[1].request_id + # self.prompts.add(prompt, PromptSession(request_id=request_id, timestamp=int(time.time()), prompt=prompt)) + # # remove the matching prefix from the prompt + # prompt = prompt[len(match[1].prompt):] + # else: + # request_id = str(uuid.uuid4()) + # self.prompts.add(prompt, PromptSession(request_id=request_id, timestamp=int(time.time()), prompt=prompt)) + + callback_id = f"chatgpt-api-wait-response-{request_id}" + callback = self.node.on_token.register(callback_id) + + if DEBUG >= 2: print(f"Sending prompt from ChatGPT api {request_id=} {shard=} {prompt=}") + + try: + await asyncio.wait_for(asyncio.shield(asyncio.create_task(self.node.process_prompt(shard, prompt, request_id=request_id))), timeout=self.response_timeout) + + if DEBUG >= 2: print(f"Waiting for response to finish. timeout={self.response_timeout}s") + + if stream: + response = web.StreamResponse( + status=200, + reason="OK", + headers={ + "Content-Type": "text/event-stream", + "Cache-Control": "no-cache", + }, + ) + await response.prepare(request) + + async def stream_result(_request_id: str, tokens: List[int], is_finished: bool): + prev_last_tokens_len = self.prev_token_lens.get(_request_id, 0) + self.prev_token_lens[_request_id] = max(prev_last_tokens_len, len(tokens)) + new_tokens = tokens[prev_last_tokens_len:] + finish_reason = None + eos_token_id = tokenizer.special_tokens_map.get("eos_token_id") if hasattr(tokenizer, "_tokenizer") and isinstance(tokenizer._tokenizer, + AutoTokenizer) else getattr(tokenizer, "eos_token_id", None) + if len(new_tokens) > 0 and new_tokens[-1] == eos_token_id: + new_tokens = new_tokens[:-1] + if is_finished: + finish_reason = "stop" + if is_finished and not finish_reason: + finish_reason = "length" + + completion = generate_completion( + chat_request, + tokenizer, + prompt, + request_id, + new_tokens, + stream, + finish_reason, + "chat.completion", + ) + if DEBUG >= 2: print(f"Streaming completion: {completion}") + try: + await response.write(f"data: {json.dumps(completion)}\n\n".encode()) + except Exception as e: + if DEBUG >= 2: print(f"Error streaming completion: {e}") + if DEBUG >= 2: traceback.print_exc() + + def on_result(_request_id: str, tokens: List[int], is_finished: bool): + if _request_id == request_id: self.stream_tasks[_request_id] = asyncio.create_task(stream_result(_request_id, tokens, is_finished)) + + return _request_id == request_id and is_finished + + _, tokens, _ = await callback.wait(on_result, timeout=self.response_timeout) + if request_id in self.stream_tasks: # in case there is still a stream task running, wait for it to complete + if DEBUG >= 2: print("Pending stream task. Waiting for stream task to complete.") + try: + await asyncio.wait_for(self.stream_tasks[request_id], timeout=30) + except asyncio.TimeoutError: + print("WARNING: Stream task timed out. This should not happen.") + await response.write_eof() + return response + else: + _, tokens, _ = await callback.wait( + lambda _request_id, tokens, is_finished: _request_id == request_id and is_finished, + timeout=self.response_timeout, + ) + + finish_reason = "length" + eos_token_id = tokenizer.special_tokens_map.get("eos_token_id") if isinstance(getattr(tokenizer, "_tokenizer", None), AutoTokenizer) else tokenizer.eos_token_id + if DEBUG >= 2: print(f"Checking if end of tokens result {tokens[-1]=} is {eos_token_id=}") + if tokens[-1] == eos_token_id: + tokens = tokens[:-1] + finish_reason = "stop" + + return web.json_response(generate_completion(chat_request, tokenizer, prompt, request_id, tokens, stream, finish_reason, "chat.completion")) + except asyncio.TimeoutError: + return web.json_response({"detail": "Response generation timed out"}, status=408) + except Exception as e: + if DEBUG >= 2: traceback.print_exc() + return web.json_response({"detail": f"Error processing prompt (see logs with DEBUG>=2): {str(e)}"}, status=500) + finally: + deregistered_callback = self.node.on_token.deregister(callback_id) + if DEBUG >= 2: print(f"Deregister {callback_id=} {deregistered_callback=}") + + + async def handle_post_image_generations(self, request): + data = await request.json() + + if DEBUG >= 2: print(f"Handling chat completions request from {request.remote}: {data}") + stream = data.get("stream", False) + model = data.get("model", "") + prompt = data.get("prompt", "") + image_url = data.get("image_url", "") + print(f"model: {model}, prompt: {prompt}, stream: {stream}") + shard = build_base_shard(model, self.inference_engine_classname) + print(f"shard: {shard}") + if not shard: + return web.json_response({"error": f"Unsupported model: {model} with inference engine {self.inference_engine_classname}"}, status=400) + + request_id = str(uuid.uuid4()) + callback_id = f"chatgpt-api-wait-response-{request_id}" + callback = self.node.on_token.register(callback_id) + try: + if image_url != "" and image_url != None: + img = self.base64_decode(image_url) + else: + img = None + await asyncio.wait_for(asyncio.shield(asyncio.create_task(self.node.process_prompt(shard, prompt, request_id=request_id, inference_state={"image": img}))), timeout=self.response_timeout) + + + response = web.StreamResponse(status=200, reason='OK', headers={'Content-Type': 'application/octet-stream',"Cache-Control": "no-cache",}) + await response.prepare(request) + + def get_progress_bar(current_step, total_steps, bar_length=50): + # Calculate the percentage of completion + percent = float(current_step) / total_steps + # Calculate the number of hashes to display + arrow = '-' * int(round(percent * bar_length) - 1) + '>' + spaces = ' ' * (bar_length - len(arrow)) + + # Create the progress bar string + progress_bar = f'Progress: [{arrow}{spaces}] {int(percent * 100)}% ({current_step}/{total_steps})' + return progress_bar + + async def stream_image(_request_id: str, result, is_finished: bool): + if isinstance(result, list): + await response.write(json.dumps({'progress': get_progress_bar((result[0]), (result[1]))}).encode('utf-8') + b'\n') + + elif isinstance(result, np.ndarray): + im = Image.fromarray(np.array(result)) + images_folder = get_exo_images_dir() + # Save the image to a file + image_filename = f"{_request_id}.png" + image_path = images_folder / image_filename + im.save(image_path) + image_url = request.app.router['static_images'].url_for(filename=image_filename) + base_url = f"{request.scheme}://{request.host}" + # Construct the full URL correctly + full_image_url = base_url + str(image_url) + + await response.write(json.dumps({'images': [{'url': str(full_image_url), 'content_type': 'image/png'}]}).encode('utf-8') + b'\n') + if is_finished: + await response.write_eof() + + + stream_task = None + def on_result(_request_id: str, result, is_finished: bool): + nonlocal stream_task + stream_task = asyncio.create_task(stream_image(_request_id, result, is_finished)) + return _request_id == request_id and is_finished + + await callback.wait(on_result, timeout=self.response_timeout*10) + + if stream_task: + # Wait for the stream task to complete before returning + await stream_task + + return response + + except Exception as e: + if DEBUG >= 2: traceback.print_exc() + return web.json_response({"detail": f"Error processing prompt (see logs with DEBUG>=2): {str(e)}"}, status=500) + + async def handle_create_animation(self, request): + try: + data = await request.json() + replacement_image_path = data.get("replacement_image_path") + device_name = data.get("device_name", "Local Device") + prompt_text = data.get("prompt", "") + + if DEBUG >= 2: print(f"Creating animation with params: replacement_image={replacement_image_path}, device={device_name}, prompt={prompt_text}") + + if not replacement_image_path: + return web.json_response({"error": "replacement_image_path is required"}, status=400) + + # Create temp directory if it doesn't exist + tmp_dir = Path(tempfile.gettempdir())/"exo_animations" + tmp_dir.mkdir(parents=True, exist_ok=True) + + # Generate unique output filename in temp directory + output_filename = f"animation_{uuid.uuid4()}.mp4" + output_path = str(tmp_dir/output_filename) + + if DEBUG >= 2: print(f"Animation temp directory: {tmp_dir}, output file: {output_path}, directory exists: {tmp_dir.exists()}, directory permissions: {oct(tmp_dir.stat().st_mode)[-3:]}") + + # Create the animation + create_animation_mp4( + replacement_image_path, + output_path, + device_name, + prompt_text + ) + + return web.json_response({ + "status": "success", + "output_path": output_path + }) + + except Exception as e: + if DEBUG >= 2: traceback.print_exc() + return web.json_response({"error": str(e)}, status=500) + + async def handle_post_download(self, request): + try: + data = await request.json() + model_name = data.get("model") + if not model_name: return web.json_response({"error": "model parameter is required"}, status=400) + if model_name not in model_cards: return web.json_response({"error": f"Invalid model: {model_name}. Supported models: {list(model_cards.keys())}"}, status=400) + shard = build_base_shard(model_name, self.inference_engine_classname) + if not shard: return web.json_response({"error": f"Could not build shard for model {model_name}"}, status=400) + asyncio.create_task(self.node.inference_engine.ensure_shard(shard)) + + return web.json_response({ + "status": "success", + "message": f"Download started for model: {model_name}" + }) + except Exception as e: + if DEBUG >= 2: traceback.print_exc() + return web.json_response({"error": str(e)}, status=500) + + async def run(self, host: str = "0.0.0.0", port: int = 52415): + runner = web.AppRunner(self.app) + await runner.setup() + site = web.TCPSite(runner, host, port) + await site.start() + + def base64_decode(self, base64_string): + #decode and reshape image + if base64_string.startswith('data:image'): + base64_string = base64_string.split(',')[1] + image_data = base64.b64decode(base64_string) + img = Image.open(BytesIO(image_data)) + W, H = (dim - dim % 64 for dim in (img.width, img.height)) + if W != img.width or H != img.height: + print(f"Warning: image shape is not divisible by 64, downsampling to {W}x{H}") + img = img.resize((W, H), Image.NEAREST) # use desired downsampling filter + img = mx.array(np.array(img)) + img = (img[:, :, :3].astype(mx.float32) / 255) * 2 - 1 + img = img[None] + return img + diff --git a/build/lib/exo/apputil/__init__.py b/build/lib/exo/apputil/__init__.py new file mode 100644 index 00000000..b6ac6e25 --- /dev/null +++ b/build/lib/exo/apputil/__init__.py @@ -0,0 +1 @@ +from exo.apputil.anim import create_animation_mp4 \ No newline at end of file diff --git a/build/lib/exo/apputil/anim.py b/build/lib/exo/apputil/anim.py new file mode 100644 index 00000000..654ca470 --- /dev/null +++ b/build/lib/exo/apputil/anim.py @@ -0,0 +1,161 @@ +from PIL import Image, ImageDraw, ImageFont, ImageFilter +import os +import numpy as np +import cv2 + +def draw_rounded_rectangle(draw, coords, radius, fill): + left, top, right, bottom = coords + diameter = radius * 2 + draw.rectangle([left + radius, top, right - radius, bottom], fill=fill) + draw.rectangle([left, top + radius, right, bottom - radius], fill=fill) + draw.pieslice([left, top, left + diameter, top + diameter], 180, 270, fill=fill) + draw.pieslice([right - diameter, top, right, top + diameter], 270, 360, fill=fill) + draw.pieslice([left, bottom - diameter, left + diameter, bottom], 90, 180, fill=fill) + draw.pieslice([right - diameter, bottom - diameter, right, bottom], 0, 90, fill=fill) + +def draw_centered_text_rounded(draw, text, font, rect_coords, radius=10, text_color="yellow", bg_color=(43,33,44)): + bbox = font.getbbox(text) + text_width = bbox[2] - bbox[0] + text_height = bbox[3] - bbox[1] + rect_left, rect_top, rect_right, rect_bottom = rect_coords + rect_width = rect_right - rect_left + rect_height = rect_bottom - rect_top + text_x = rect_left + (rect_width - text_width) // 2 + text_y = rect_top + (rect_height - text_height) // 2 + draw_rounded_rectangle(draw, rect_coords, radius, bg_color) + draw.text((text_x, text_y), text, fill=text_color, font=font) + +def draw_left_aligned_text_rounded(draw, text, font, rect_coords, padding_left=20, radius=10, text_color="yellow", bg_color=(43,33,44)): + bbox = font.getbbox(text) + text_height = bbox[3] - bbox[1] + rect_left, rect_top, rect_right, rect_bottom = rect_coords + rect_height = rect_bottom - rect_top + text_y = rect_top + (rect_height - text_height) // 2 + text_x = rect_left + padding_left + draw_rounded_rectangle(draw, rect_coords, radius, bg_color) + draw.text((text_x, text_y), text, fill=text_color, font=font) + +def draw_right_text_dynamic_width_rounded(draw, text, font, base_coords, padding=20, radius=10, text_color="yellow", bg_color=(43,33,44)): + bbox = font.getbbox(text) + text_width = bbox[2] - bbox[0] + text_height = bbox[3] - bbox[1] + _, rect_top, rect_right, rect_bottom = base_coords + rect_height = rect_bottom - rect_top + new_rect_left = rect_right - (text_width + (padding * 2)) + text_y = rect_top + (rect_height - text_height) // 2 + text_x = new_rect_left + padding + draw_rounded_rectangle(draw, (new_rect_left, rect_top, rect_right, rect_bottom), radius, bg_color) + draw.text((text_x, text_y), text, fill=text_color, font=font) + return new_rect_left + +def draw_progress_bar(draw, progress, coords, color="yellow", bg_color=(70, 70, 70)): + left, top, right, bottom = coords + total_width = right - left + draw.rectangle(coords, fill=bg_color) + progress_width = int(total_width * progress) + if progress_width > 0: + draw.rectangle((left, top, left + progress_width, bottom), fill=color) + +def crop_image(image, top_crop=70): + width, height = image.size + return image.crop((0, top_crop, width, height)) + +def create_animation_mp4( + replacement_image_path, + output_path, + device_name, + prompt_text, + fps=30, + target_size=(512, 512), + target_position=(139, 755), + progress_coords=(139, 1285, 655, 1295), + device_coords=(1240, 370, 1640, 416), + prompt_coords=(332, 1702, 2662, 1745) +): + frames = [] + try: + font = ImageFont.truetype("/System/Library/Fonts/SFNSMono.ttf", 20) + promptfont = ImageFont.truetype("/System/Library/Fonts/SFNSMono.ttf", 24) + except: + font = ImageFont.load_default() + promptfont = ImageFont.load_default() + + # Process first frame + base_img = Image.open(os.path.join(os.path.dirname(__file__), "baseimages", "image1.png")) + draw = ImageDraw.Draw(base_img) + draw_centered_text_rounded(draw, device_name, font, device_coords) + frames.extend([crop_image(base_img)] * 30) # 1 second at 30fps + + # Process second frame with typing animation + base_img2 = Image.open(os.path.join(os.path.dirname(__file__), "baseimages", "image2.png")) + for i in range(len(prompt_text) + 1): + current_frame = base_img2.copy() + draw = ImageDraw.Draw(current_frame) + draw_centered_text_rounded(draw, device_name, font, device_coords) + if i > 0: # Only draw if we have at least one character + draw_left_aligned_text_rounded(draw, prompt_text[:i], promptfont, prompt_coords) + frames.extend([crop_image(current_frame)] * 2) # 2 frames per character for smooth typing + + # Hold the complete prompt for a moment + frames.extend([frames[-1]] * 30) # Hold for 1 second + + # Create blur sequence + replacement_img = Image.open(replacement_image_path) + base_img = Image.open(os.path.join(os.path.dirname(__file__), "baseimages", "image3.png")) + blur_steps = [int(80 * (1 - i/8)) for i in range(9)] + + for i, blur_amount in enumerate(blur_steps): + new_frame = base_img.copy() + draw = ImageDraw.Draw(new_frame) + + replacement_copy = replacement_img.copy() + replacement_copy.thumbnail(target_size, Image.Resampling.LANCZOS) + if blur_amount > 0: + replacement_copy = replacement_copy.filter(ImageFilter.GaussianBlur(radius=blur_amount)) + + mask = replacement_copy.split()[-1] if replacement_copy.mode in ('RGBA', 'LA') else None + new_frame.paste(replacement_copy, target_position, mask) + + draw_progress_bar(draw, (i + 1) / 9, progress_coords) + draw_centered_text_rounded(draw, device_name, font, device_coords) + draw_right_text_dynamic_width_rounded(draw, prompt_text, promptfont, (None, 590, 2850, 685), padding=30) + + frames.extend([crop_image(new_frame)] * 15) # 0.5 seconds at 30fps + + # Create and add final frame (image4) + final_base = Image.open(os.path.join(os.path.dirname(__file__), "baseimages", "image4.png")) + draw = ImageDraw.Draw(final_base) + + draw_centered_text_rounded(draw, device_name, font, device_coords) + draw_right_text_dynamic_width_rounded(draw, prompt_text, promptfont, (None, 590, 2850, 685), padding=30) + + replacement_copy = replacement_img.copy() + replacement_copy.thumbnail(target_size, Image.Resampling.LANCZOS) + mask = replacement_copy.split()[-1] if replacement_copy.mode in ('RGBA', 'LA') else None + final_base.paste(replacement_copy, target_position, mask) + + frames.extend([crop_image(final_base)] * 30) # 1 second at 30fps + + # Convert frames to video using H.264 codec + if frames: + first_frame = np.array(frames[0]) + height, width = first_frame.shape[:2] + fourcc = cv2.VideoWriter_fourcc(*'avc1') + out = cv2.VideoWriter( + output_path, + fourcc, + fps, + (width, height), + isColor=True + ) + + if not out.isOpened(): + print("Error: VideoWriter failed to open") + return + + for frame in frames: + frame_array = cv2.cvtColor(np.array(frame), cv2.COLOR_RGB2BGR) + out.write(frame_array) + + out.release() + print(f"Video saved successfully to {output_path}") \ No newline at end of file diff --git a/build/lib/exo/download/__init__.py b/build/lib/exo/download/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/download/download_progress.py b/build/lib/exo/download/download_progress.py new file mode 100644 index 00000000..779e5328 --- /dev/null +++ b/build/lib/exo/download/download_progress.py @@ -0,0 +1,61 @@ +from typing import Dict, Callable, Coroutine, Any, Literal +from dataclasses import dataclass +from datetime import timedelta + + +@dataclass +class RepoFileProgressEvent: + repo_id: str + repo_revision: str + file_path: str + downloaded: int + downloaded_this_session: int + total: int + speed: int + eta: timedelta + status: Literal["not_started", "in_progress", "complete"] + + def to_dict(self): + return { + "repo_id": self.repo_id, "repo_revision": self.repo_revision, "file_path": self.file_path, "downloaded": self.downloaded, "downloaded_this_session": self.downloaded_this_session, + "total": self.total, "speed": self.speed, "eta": self.eta.total_seconds(), "status": self.status + } + + @classmethod + def from_dict(cls, data): + if 'eta' in data: data['eta'] = timedelta(seconds=data['eta']) + return cls(**data) + + +@dataclass +class RepoProgressEvent: + repo_id: str + repo_revision: str + completed_files: int + total_files: int + downloaded_bytes: int + downloaded_bytes_this_session: int + total_bytes: int + overall_speed: int + overall_eta: timedelta + file_progress: Dict[str, RepoFileProgressEvent] + status: Literal["not_started", "in_progress", "complete"] + + def to_dict(self): + return { + "repo_id": self.repo_id, "repo_revision": self.repo_revision, "completed_files": self.completed_files, "total_files": self.total_files, "downloaded_bytes": self.downloaded_bytes, + "downloaded_bytes_this_session": self.downloaded_bytes_this_session, "total_bytes": self.total_bytes, "overall_speed": self.overall_speed, "overall_eta": self.overall_eta.total_seconds(), + "file_progress": {k: v.to_dict() + for k, v in self.file_progress.items()}, "status": self.status + } + + @classmethod + def from_dict(cls, data): + if 'overall_eta' in data: data['overall_eta'] = timedelta(seconds=data['overall_eta']) + if 'file_progress' in data: data['file_progress'] = {k: RepoFileProgressEvent.from_dict(v) for k, v in data['file_progress'].items()} + + return cls(**data) + + +RepoFileProgressCallback = Callable[[RepoFileProgressEvent], Coroutine[Any, Any, None]] +RepoProgressCallback = Callable[[RepoProgressEvent], Coroutine[Any, Any, None]] diff --git a/build/lib/exo/download/hf/__init__.py b/build/lib/exo/download/hf/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/download/hf/hf_helpers.py b/build/lib/exo/download/hf/hf_helpers.py new file mode 100644 index 00000000..6e8220ea --- /dev/null +++ b/build/lib/exo/download/hf/hf_helpers.py @@ -0,0 +1,447 @@ +import aiofiles.os as aios +from typing import Union +import asyncio +import aiohttp +import json +import os +import sys +import shutil +from urllib.parse import urljoin +from typing import Callable, Optional, Coroutine, Any, Dict, List, Union, Literal +from datetime import datetime, timedelta +from fnmatch import fnmatch +from pathlib import Path +from typing import Generator, Iterable, TypeVar, TypedDict +from tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exception_type +from exo.helpers import DEBUG, is_frozen +from exo.download.download_progress import RepoProgressEvent, RepoFileProgressEvent, RepoProgressCallback, RepoFileProgressCallback +from exo.inference.shard import Shard +import aiofiles + +T = TypeVar("T") + +async def get_local_snapshot_dir(repo_id: str, revision: str = "main") -> Optional[Path]: + refs_dir = get_repo_root(repo_id)/"refs" + refs_file = refs_dir/revision + if await aios.path.exists(refs_file): + async with aiofiles.open(refs_file, 'r') as f: + commit_hash = (await f.read()).strip() + snapshot_dir = get_repo_root(repo_id)/"snapshots"/commit_hash + return snapshot_dir + return None + + +def filter_repo_objects( + items: Iterable[T], + *, + allow_patterns: Optional[Union[List[str], str]] = None, + ignore_patterns: Optional[Union[List[str], str]] = None, + key: Optional[Callable[[T], str]] = None, +) -> Generator[T, None, None]: + if isinstance(allow_patterns, str): + allow_patterns = [allow_patterns] + if isinstance(ignore_patterns, str): + ignore_patterns = [ignore_patterns] + if allow_patterns is not None: + allow_patterns = [_add_wildcard_to_directories(p) for p in allow_patterns] + if ignore_patterns is not None: + ignore_patterns = [_add_wildcard_to_directories(p) for p in ignore_patterns] + + if key is None: + + def _identity(item: T) -> str: + if isinstance(item, str): + return item + if isinstance(item, Path): + return str(item) + raise ValueError(f"Please provide `key` argument in `filter_repo_objects`: `{item}` is not a string.") + + key = _identity + + for item in items: + path = key(item) + if allow_patterns is not None and not any(fnmatch(path, r) for r in allow_patterns): + continue + if ignore_patterns is not None and any(fnmatch(path, r) for r in ignore_patterns): + continue + yield item + + +def _add_wildcard_to_directories(pattern: str) -> str: + if pattern[-1] == "/": + return pattern + "*" + return pattern + + +def get_hf_endpoint() -> str: + return os.environ.get('HF_ENDPOINT', "https://huggingface.co") + + +def get_hf_home() -> Path: + """Get the Hugging Face home directory.""" + return Path(os.environ.get("HF_HOME", Path.home()/".cache"/"huggingface")) + + +async def get_hf_token(): + """Retrieve the Hugging Face token from the user's HF_HOME directory.""" + token_path = get_hf_home()/"token" + if await aios.path.exists(token_path): + async with aiofiles.open(token_path, 'r') as f: + return (await f.read()).strip() + return None + + +async def get_auth_headers(): + """Get authentication headers if a token is available.""" + token = await get_hf_token() + if token: + return {"Authorization": f"Bearer {token}"} + return {} + + +def get_repo_root(repo_id: str) -> Path: + """Get the root directory for a given repo ID in the Hugging Face cache.""" + sanitized_repo_id = str(repo_id).replace("/", "--") + return get_hf_home()/"hub"/f"models--{sanitized_repo_id}" + +async def move_models_to_hf(seed_dir: Union[str, Path]): + """Move model in resources folder of app to .cache/huggingface/hub""" + source_dir = Path(seed_dir) + dest_dir = get_hf_home()/"hub" + await aios.makedirs(dest_dir, exist_ok=True) + for path in source_dir.iterdir(): + if path.is_dir() and path.name.startswith("models--"): + dest_path = dest_dir / path.name + if await aios.path.exists(dest_path): + print('Skipping moving model to .cache directory') + else: + try: + await aios.rename(str(path), str(dest_path)) + except Exception as e: + print(f'Error moving model to .cache: {e}') + + + +async def fetch_file_list(session, repo_id, revision, path=""): + api_url = f"{get_hf_endpoint()}/api/models/{repo_id}/tree/{revision}" + url = f"{api_url}/{path}" if path else api_url + + headers = await get_auth_headers() + async with session.get(url, headers=headers) as response: + if response.status == 200: + data = await response.json() + files = [] + for item in data: + if item["type"] == "file": + files.append({"path": item["path"], "size": item["size"]}) + elif item["type"] == "directory": + subfiles = await fetch_file_list(session, repo_id, revision, item["path"]) + files.extend(subfiles) + return files + else: + raise Exception(f"Failed to fetch file list: {response.status}") + + +@retry( + stop=stop_after_attempt(5), wait=wait_exponential(multiplier=1, min=4, max=60), retry=retry_if_exception_type((aiohttp.ClientError, asyncio.TimeoutError, aiohttp.ClientResponseError)), reraise=True +) +async def download_file( + session: aiohttp.ClientSession, repo_id: str, revision: str, file_path: str, save_directory: str, progress_callback: Optional[RepoFileProgressCallback] = None, use_range_request: bool = True +): + base_url = f"{get_hf_endpoint()}/{repo_id}/resolve/{revision}/" + url = urljoin(base_url, file_path) + local_path = os.path.join(save_directory, file_path) + + await aios.makedirs(os.path.dirname(local_path), exist_ok=True) + + # Check if file already exists and get its size + local_file_size = await aios.path.getsize(local_path) if await aios.path.exists(local_path) else 0 + + headers = await get_auth_headers() + if use_range_request: + headers["Range"] = f"bytes={local_file_size}-" + + async with session.get(url, headers=headers) as response: + total_size = int(response.headers.get('Content-Length', 0)) + downloaded_size = local_file_size + downloaded_this_session = 0 + mode = 'ab' if use_range_request else 'wb' + if downloaded_size == total_size: + if DEBUG >= 2: print(f"File already downloaded: {file_path}") + if progress_callback: + await progress_callback(RepoFileProgressEvent(repo_id, revision, file_path, downloaded_size, downloaded_this_session, total_size, 0, timedelta(0), "complete")) + return + + if response.status == 200: + # File doesn't support range requests or we're not using them, start from beginning + mode = 'wb' + downloaded_size = 0 + elif response.status == 206: + # Partial content, resume download + content_range = response.headers.get('Content-Range', '') + try: + total_size = int(content_range.split('/')[-1]) + except ValueError: + if DEBUG >= 1: print(f"Failed to parse Content-Range header: {content_range}. Starting download from scratch...") + return await download_file(session, repo_id, revision, file_path, save_directory, progress_callback, use_range_request=False) + elif response.status == 416: + # Range not satisfiable, get the actual file size + content_range = response.headers.get('Content-Range', '') + try: + total_size = int(content_range.split('/')[-1]) + if downloaded_size == total_size: + if DEBUG >= 2: print(f"File fully downloaded on first pass: {file_path}") + if progress_callback: + await progress_callback(RepoFileProgressEvent(repo_id, revision, file_path, downloaded_size, downloaded_this_session, total_size, 0, timedelta(0), "complete")) + return + except ValueError: + if DEBUG >= 1: print(f"Failed to parse Content-Range header: {content_range}. Starting download from scratch...") + return await download_file(session, repo_id, revision, file_path, save_directory, progress_callback, use_range_request=False) + else: + raise aiohttp.ClientResponseError(response.request_info, response.history, status=response.status, message=f"Failed to download {file_path}: {response.status}") + + if downloaded_size == total_size: + print(f"File already downloaded: {file_path}") + if progress_callback: + await progress_callback(RepoFileProgressEvent(repo_id, revision, file_path, downloaded_size, downloaded_this_session, total_size, 0, timedelta(0), "complete")) + return + + DOWNLOAD_CHUNK_SIZE = 32768 + start_time = datetime.now() + async with aiofiles.open(local_path, mode) as f: + async for chunk in response.content.iter_chunked(DOWNLOAD_CHUNK_SIZE): + await f.write(chunk) + downloaded_size += len(chunk) + downloaded_this_session += len(chunk) + if progress_callback and total_size: + elapsed_time = (datetime.now() - start_time).total_seconds() + speed = int(downloaded_this_session/elapsed_time) if elapsed_time > 0 else 0 + remaining_size = total_size - downloaded_size + eta = timedelta(seconds=remaining_size/speed) if speed > 0 else timedelta(0) + status = "in_progress" if downloaded_size < total_size else "complete" + if DEBUG >= 8: print(f"HF repo file download progress: {file_path=} {elapsed_time=} {speed=} Downloaded={downloaded_size}/{total_size} {remaining_size=} {eta=} {status=}") + await progress_callback(RepoFileProgressEvent(repo_id, revision, file_path, downloaded_size, downloaded_this_session, total_size, speed, eta, status)) + if DEBUG >= 2: print(f"Downloaded: {file_path}") + + +async def resolve_revision_to_commit_hash(repo_id: str, revision: str) -> str: + repo_root = get_repo_root(repo_id) + refs_dir = repo_root/"refs" + refs_file = refs_dir/revision + + # Check if we have a cached commit hash + if await aios.path.exists(refs_file): + async with aiofiles.open(refs_file, 'r') as f: + commit_hash = (await f.read()).strip() + if DEBUG >= 2: print(f"Commit hash is already cached at {refs_file}: {commit_hash}") + return commit_hash + + # Fetch the commit hash for the given revision + async with aiohttp.ClientSession() as session: + api_url = f"{get_hf_endpoint()}/api/models/{repo_id}/revision/{revision}" + headers = await get_auth_headers() + async with session.get(api_url, headers=headers) as response: + if response.status != 200: + raise Exception(f"Failed to fetch revision info from {api_url}: {response.status}") + revision_info = await response.json() + commit_hash = revision_info['sha'] + + # Cache the commit hash + await aios.makedirs(refs_dir, exist_ok=True) + async with aiofiles.open(refs_file, 'w') as f: + await f.write(commit_hash) + + return commit_hash + + +async def download_repo_files( + repo_id: str, + revision: str = "main", + progress_callback: Optional[RepoProgressCallback] = None, + allow_patterns: Optional[Union[List[str], str]] = None, + ignore_patterns: Optional[Union[List[str], str]] = None, + max_parallel_downloads: int = 4 +) -> Path: + repo_root = get_repo_root(repo_id) + snapshots_dir = repo_root/"snapshots" + cachedreqs_dir = repo_root/"cachedreqs" + + # Ensure directories exist + await aios.makedirs(snapshots_dir, exist_ok=True) + await aios.makedirs(cachedreqs_dir, exist_ok=True) + + # Resolve revision to commit hash + commit_hash = await resolve_revision_to_commit_hash(repo_id, revision) + + # Set up the snapshot directory + snapshot_dir = snapshots_dir/commit_hash + await aios.makedirs(snapshot_dir, exist_ok=True) + + # Set up the cached file list directory + cached_file_list_dir = cachedreqs_dir/commit_hash + await aios.makedirs(cached_file_list_dir, exist_ok=True) + cached_file_list_path = cached_file_list_dir/"fetch_file_list.json" + + async with aiohttp.ClientSession() as session: + # Check if we have a cached file list + if await aios.path.exists(cached_file_list_path): + async with aiofiles.open(cached_file_list_path, 'r') as f: + file_list = json.loads(await f.read()) + if DEBUG >= 2: print(f"Using cached file list from {cached_file_list_path}") + else: + file_list = await fetch_file_list(session, repo_id, revision) + # Cache the file list + async with aiofiles.open(cached_file_list_path, 'w') as f: + await f.write(json.dumps(file_list)) + if DEBUG >= 2: print(f"Cached file list at {cached_file_list_path}") + + model_index_exists = any(file["path"] == "model_index.json" for file in file_list) + if model_index_exists: + allow_patterns = ["**/*.json", "**/*.txt", "**/*model.safetensors", "*.json"] + + filtered_file_list = list(filter_repo_objects(file_list, allow_patterns=allow_patterns, ignore_patterns=ignore_patterns, key=lambda x: x["path"])) + total_files = len(filtered_file_list) + total_bytes = sum(file["size"] for file in filtered_file_list) + file_progress: Dict[str, RepoFileProgressEvent] = { + file["path"]: RepoFileProgressEvent(repo_id, revision, file["path"], 0, 0, file["size"], 0, timedelta(0), "not_started") + for file in filtered_file_list + } + start_time = datetime.now() + + async def download_with_progress(file_info, progress_state): + local_path = snapshot_dir/file_info["path"] + if await aios.path.exists(local_path) and (await aios.stat(local_path)).st_size == file_info["size"]: + if DEBUG >= 2: print(f"File already fully downloaded: {file_info['path']}") + progress_state['completed_files'] += 1 + progress_state['downloaded_bytes'] += file_info["size"] + file_progress[file_info["path"]] = RepoFileProgressEvent(repo_id, revision, file_info["path"], file_info["size"], 0, file_info["size"], 0, timedelta(0), "complete") + if progress_callback: + elapsed_time = (datetime.now() - start_time).total_seconds() + overall_speed = int(progress_state['downloaded_bytes_this_session']/elapsed_time) if elapsed_time > 0 else 0 + remaining_bytes = total_bytes - progress_state['downloaded_bytes'] + overall_eta = timedelta(seconds=remaining_bytes/overall_speed) if overall_speed > 0 else timedelta(seconds=0) + status = "in_progress" if progress_state['completed_files'] < total_files else "complete" + await progress_callback( + RepoProgressEvent( + repo_id, revision, progress_state['completed_files'], total_files, progress_state['downloaded_bytes'], progress_state['downloaded_bytes_this_session'], total_bytes, overall_speed, + overall_eta, file_progress, status + ) + ) + return + + async def file_progress_callback(event: RepoFileProgressEvent): + progress_state['downloaded_bytes'] += event.downloaded - file_progress[event.file_path].downloaded + progress_state['downloaded_bytes_this_session'] += event.downloaded_this_session - file_progress[event.file_path].downloaded_this_session + file_progress[event.file_path] = event + if progress_callback: + elapsed_time = (datetime.now() - start_time).total_seconds() + overall_speed = int(progress_state['downloaded_bytes_this_session']/elapsed_time) if elapsed_time > 0 else 0 + remaining_bytes = total_bytes - progress_state['downloaded_bytes'] + overall_eta = timedelta(seconds=remaining_bytes/overall_speed) if overall_speed > 0 else timedelta(seconds=0) + status = "in_progress" if progress_state['downloaded_bytes'] < total_bytes else "complete" + await progress_callback( + RepoProgressEvent( + repo_id, revision, progress_state['completed_files'], total_files, progress_state['downloaded_bytes'], progress_state['downloaded_bytes_this_session'], total_bytes, overall_speed, + overall_eta, file_progress, status + ) + ) + + await download_file(session, repo_id, revision, file_info["path"], snapshot_dir, file_progress_callback) + progress_state['completed_files'] += 1 + file_progress[ + file_info["path"] + ] = RepoFileProgressEvent(repo_id, revision, file_info["path"], file_info["size"], file_progress[file_info["path"]].downloaded_this_session, file_info["size"], 0, timedelta(0), "complete") + if progress_callback: + elapsed_time = (datetime.now() - start_time).total_seconds() + overall_speed = int(progress_state['downloaded_bytes_this_session']/elapsed_time) if elapsed_time > 0 else 0 + remaining_bytes = total_bytes - progress_state['downloaded_bytes'] + overall_eta = timedelta(seconds=remaining_bytes/overall_speed) if overall_speed > 0 else timedelta(seconds=0) + status = "in_progress" if progress_state['completed_files'] < total_files else "complete" + await progress_callback( + RepoProgressEvent( + repo_id, revision, progress_state['completed_files'], total_files, progress_state['downloaded_bytes'], progress_state['downloaded_bytes_this_session'], total_bytes, overall_speed, + overall_eta, file_progress, status + ) + ) + + progress_state = {'completed_files': 0, 'downloaded_bytes': 0, 'downloaded_bytes_this_session': 0} + + semaphore = asyncio.Semaphore(max_parallel_downloads) + + async def download_with_semaphore(file_info): + async with semaphore: + await download_with_progress(file_info, progress_state) + + tasks = [asyncio.create_task(download_with_semaphore(file_info)) for file_info in filtered_file_list] + await asyncio.gather(*tasks) + + return snapshot_dir + + +async def get_weight_map(repo_id: str, revision: str = "main") -> Optional[Dict[str, str]]: + """ + Retrieve the weight map from the model.safetensors.index.json file. + + Args: + repo_id (str): The Hugging Face repository ID. + revision (str): The revision of the repository to use. + + Returns: + Optional[Dict[str, str]]: The weight map if it exists, otherwise None. + """ + + # Download the index file + await download_repo_files(repo_id=repo_id, revision=revision, allow_patterns="model.safetensors.index.json") + + # Check if the file exists + repo_root = get_repo_root(repo_id) + commit_hash = await resolve_revision_to_commit_hash(repo_id, revision) + snapshot_dir = repo_root/"snapshots"/commit_hash + index_file = next((f for f in await aios.listdir(snapshot_dir) if f.endswith("model.safetensors.index.json")), None) + + if index_file: + index_file_path = snapshot_dir/index_file + if await aios.path.exists(index_file_path): + async with aiofiles.open(index_file_path, 'r') as f: + index_data = json.loads(await f.read()) + return index_data.get("weight_map") + + return None + + +def extract_layer_num(tensor_name: str) -> Optional[int]: + # This is a simple example and might need to be adjusted based on the actual naming convention + parts = tensor_name.split('.') + for part in parts: + if part.isdigit(): + return int(part) + return None + + +def get_allow_patterns(weight_map: Dict[str, str], shard: Shard) -> List[str]: + default_patterns = set(["*.json", "*.py", "tokenizer.model", "*.tiktoken", "*.txt"]) + shard_specific_patterns = set() + if weight_map: + for tensor_name, filename in weight_map.items(): + layer_num = extract_layer_num(tensor_name) + if layer_num is not None and shard.start_layer <= layer_num <= shard.end_layer: + shard_specific_patterns.add(filename) + sorted_file_names = sorted(weight_map.values()) + if shard.is_first_layer(): + shard_specific_patterns.add(sorted_file_names[0]) + elif shard.is_last_layer(): + shard_specific_patterns.add(sorted_file_names[-1]) + else: + shard_specific_patterns = set(["*.safetensors"]) + if DEBUG >= 2: print(f"get_allow_patterns {weight_map=} {shard=} {shard_specific_patterns=}") + return list(default_patterns | shard_specific_patterns) + +async def has_hf_home_read_access() -> bool: + hf_home = get_hf_home() + try: return await aios.access(hf_home, os.R_OK) + except OSError: return False + +async def has_hf_home_write_access() -> bool: + hf_home = get_hf_home() + try: return await aios.access(hf_home, os.W_OK) + except OSError: return False diff --git a/build/lib/exo/download/hf/hf_shard_download.py b/build/lib/exo/download/hf/hf_shard_download.py new file mode 100644 index 00000000..22f4fa37 --- /dev/null +++ b/build/lib/exo/download/hf/hf_shard_download.py @@ -0,0 +1,79 @@ +import asyncio +import traceback +from pathlib import Path +from typing import Dict, List, Tuple +from exo.inference.shard import Shard +from exo.download.shard_download import ShardDownloader +from exo.download.download_progress import RepoProgressEvent +from exo.download.hf.hf_helpers import download_repo_files, RepoProgressEvent, get_weight_map, get_allow_patterns, get_repo_root +from exo.helpers import AsyncCallbackSystem, DEBUG +from exo.models import model_cards, get_repo + + +class HFShardDownloader(ShardDownloader): + def __init__(self, quick_check: bool = False, max_parallel_downloads: int = 4): + self.quick_check = quick_check + self.max_parallel_downloads = max_parallel_downloads + self.active_downloads: Dict[Shard, asyncio.Task] = {} + self.completed_downloads: Dict[Shard, Path] = {} + self._on_progress = AsyncCallbackSystem[str, Tuple[Shard, RepoProgressEvent]]() + + async def ensure_shard(self, shard: Shard, inference_engine_name: str) -> Path: + repo_name = get_repo(shard.model_id, inference_engine_name) + if shard in self.completed_downloads: + return self.completed_downloads[shard] + if self.quick_check: + repo_root = get_repo_root(repo_name) + snapshots_dir = repo_root/"snapshots" + if snapshots_dir.exists(): + visible_dirs = [d for d in snapshots_dir.iterdir() if not d.name.startswith('.')] + if visible_dirs: + most_recent_dir = max(visible_dirs, key=lambda x: x.stat().st_mtime) + return most_recent_dir + + # If a download on this shard is already in progress, keep that one + for active_shard in self.active_downloads: + if active_shard == shard: + if DEBUG >= 2: print(f"Download already in progress for {shard}. Keeping that one.") + return await self.active_downloads[shard] + + # Cancel any downloads for this model_id on a different shard + existing_active_shards = [active_shard for active_shard in self.active_downloads.keys() if active_shard.model_id == shard.model_id] + for active_shard in existing_active_shards: + if DEBUG >= 2: print(f"Cancelling download for {active_shard} (replacing with {shard})") + task = self.active_downloads[active_shard] + task.cancel() + try: + await task + except asyncio.CancelledError: + pass # This is expected when cancelling a task + except Exception as e: + if DEBUG >= 2: print(f"Error in cancelling download {active_shard}: {e}") + traceback.print_exc() + self.active_downloads = {active_shard: task for active_shard, task in self.active_downloads.items() if active_shard.model_id != shard.model_id} + + # Start new download + download_task = asyncio.create_task(self._download_shard(shard, repo_name)) + self.active_downloads[shard] = download_task + try: + path = await download_task + self.completed_downloads[shard] = path + return path + finally: + # Ensure the task is removed even if an exception occurs + print(f"Removing download task for {shard}: {shard in self.active_downloads}") + if shard in self.active_downloads: + self.active_downloads.pop(shard) + + async def _download_shard(self, shard: Shard, repo_name: str) -> Path: + async def wrapped_progress_callback(event: RepoProgressEvent): + self._on_progress.trigger_all(shard, event) + + weight_map = await get_weight_map(repo_name) + allow_patterns = get_allow_patterns(weight_map, shard) + + return await download_repo_files(repo_name, progress_callback=wrapped_progress_callback, allow_patterns=allow_patterns, max_parallel_downloads=self.max_parallel_downloads) + + @property + def on_progress(self) -> AsyncCallbackSystem[str, Tuple[Shard, RepoProgressEvent]]: + return self._on_progress diff --git a/build/lib/exo/download/shard_download.py b/build/lib/exo/download/shard_download.py new file mode 100644 index 00000000..78189962 --- /dev/null +++ b/build/lib/exo/download/shard_download.py @@ -0,0 +1,36 @@ +from abc import ABC, abstractmethod +from typing import Optional, Tuple +from pathlib import Path +from exo.inference.shard import Shard +from exo.download.download_progress import RepoProgressEvent +from exo.helpers import AsyncCallbackSystem + + +class ShardDownloader(ABC): + @abstractmethod + async def ensure_shard(self, shard: Shard, inference_engine_name: str) -> Path: + """ + Ensures that the shard is downloaded. + Does not allow multiple overlapping downloads at once. + If you try to download a Shard which overlaps a Shard that is already being downloaded, + the download will be cancelled and a new download will start. + + Args: + shard (Shard): The shard to download. + inference_engine_name (str): The inference engine used on the node hosting the shard + """ + pass + + @property + @abstractmethod + def on_progress(self) -> AsyncCallbackSystem[str, Tuple[Shard, RepoProgressEvent]]: + pass + + +class NoopShardDownloader(ShardDownloader): + async def ensure_shard(self, shard: Shard, inference_engine_name: str) -> Path: + return Path("/tmp/noop_shard") + + @property + def on_progress(self) -> AsyncCallbackSystem[str, Tuple[Shard, RepoProgressEvent]]: + return AsyncCallbackSystem() diff --git a/build/lib/exo/helpers.py b/build/lib/exo/helpers.py new file mode 100644 index 00000000..ea11bcd9 --- /dev/null +++ b/build/lib/exo/helpers.py @@ -0,0 +1,274 @@ +import os +import sys +import asyncio +from typing import Callable, TypeVar, Optional, Dict, Generic, Tuple, List +import socket +import random +import platform +import psutil +import uuid +import netifaces +from pathlib import Path +import tempfile + +DEBUG = int(os.getenv("DEBUG", default="0")) +DEBUG_DISCOVERY = int(os.getenv("DEBUG_DISCOVERY", default="0")) +VERSION = "0.0.1" + +exo_text = r""" + _____ _____ + / _ \ \/ / _ \ +| __/> < (_) | + \___/_/\_\___/ + """ + + +def get_system_info(): + if psutil.MACOS: + if platform.machine() == "arm64": + return "Apple Silicon Mac" + if platform.machine() in ["x86_64", "i386"]: + return "Intel Mac" + return "Unknown Mac architecture" + if psutil.LINUX: + return "Linux" + return "Non-Mac, non-Linux system" + + +def find_available_port(host: str = "", min_port: int = 49152, max_port: int = 65535) -> int: + used_ports_file = os.path.join(tempfile.gettempdir(), "exo_used_ports") + + def read_used_ports(): + if os.path.exists(used_ports_file): + with open(used_ports_file, "r") as f: + return [int(line.strip()) for line in f if line.strip().isdigit()] + return [] + + def write_used_port(port, used_ports): + with open(used_ports_file, "w") as f: + print(used_ports[-19:]) + for p in used_ports[-19:] + [port]: + f.write(f"{p}\n") + + used_ports = read_used_ports() + available_ports = set(range(min_port, max_port + 1)) - set(used_ports) + + while available_ports: + port = random.choice(list(available_ports)) + if DEBUG >= 2: print(f"Trying to find available port {port=}") + try: + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.bind((host, port)) + write_used_port(port, used_ports) + return port + except socket.error: + available_ports.remove(port) + + raise RuntimeError("No available ports in the specified range") + + +def print_exo(): + print(exo_text) + + +def print_yellow_exo(): + yellow = "\033[93m" # ANSI escape code for yellow + reset = "\033[0m" # ANSI escape code to reset color + print(f"{yellow}{exo_text}{reset}") + + +def terminal_link(uri, label=None): + if label is None: + label = uri + parameters = "" + + # OSC 8 ; params ; URI ST OSC 8 ;; ST + escape_mask = "\033]8;{};{}\033\\{}\033]8;;\033\\" + + return escape_mask.format(parameters, uri, label) + + +T = TypeVar("T") +K = TypeVar("K") + + +class AsyncCallback(Generic[T]): + def __init__(self) -> None: + self.condition: asyncio.Condition = asyncio.Condition() + self.result: Optional[Tuple[T, ...]] = None + self.observers: list[Callable[..., None]] = [] + + async def wait(self, check_condition: Callable[..., bool], timeout: Optional[float] = None) -> Tuple[T, ...]: + async with self.condition: + await asyncio.wait_for(self.condition.wait_for(lambda: self.result is not None and check_condition(*self.result)), timeout) + assert self.result is not None # for type checking + return self.result + + def on_next(self, callback: Callable[..., None]) -> None: + self.observers.append(callback) + + def set(self, *args: T) -> None: + self.result = args + for observer in self.observers: + observer(*args) + asyncio.create_task(self.notify()) + + async def notify(self) -> None: + async with self.condition: + self.condition.notify_all() + + +class AsyncCallbackSystem(Generic[K, T]): + def __init__(self) -> None: + self.callbacks: Dict[K, AsyncCallback[T]] = {} + + def register(self, name: K) -> AsyncCallback[T]: + if name not in self.callbacks: + self.callbacks[name] = AsyncCallback[T]() + return self.callbacks[name] + + def deregister(self, name: K) -> None: + if name in self.callbacks: + del self.callbacks[name] + + def trigger(self, name: K, *args: T) -> None: + if name in self.callbacks: + self.callbacks[name].set(*args) + + def trigger_all(self, *args: T) -> None: + for callback in self.callbacks.values(): + callback.set(*args) + + +K = TypeVar('K', bound=str) +V = TypeVar('V') + + +class PrefixDict(Generic[K, V]): + def __init__(self): + self.items: Dict[K, V] = {} + + def add(self, key: K, value: V) -> None: + self.items[key] = value + + def find_prefix(self, argument: str) -> List[Tuple[K, V]]: + return [(key, value) for key, value in self.items.items() if argument.startswith(key)] + + def find_longest_prefix(self, argument: str) -> Optional[Tuple[K, V]]: + matches = self.find_prefix(argument) + if len(matches) == 0: + return None + + return max(matches, key=lambda x: len(x[0])) + + +def is_valid_uuid(val): + try: + uuid.UUID(str(val)) + return True + except ValueError: + return False + + +def get_or_create_node_id(): + NODE_ID_FILE = Path(tempfile.gettempdir())/".exo_node_id" + try: + if NODE_ID_FILE.is_file(): + with open(NODE_ID_FILE, "r") as f: + stored_id = f.read().strip() + if is_valid_uuid(stored_id): + if DEBUG >= 2: print(f"Retrieved existing node ID: {stored_id}") + return stored_id + else: + if DEBUG >= 2: print("Stored ID is not a valid UUID. Generating a new one.") + + new_id = str(uuid.uuid4()) + with open(NODE_ID_FILE, "w") as f: + f.write(new_id) + + if DEBUG >= 2: print(f"Generated and stored new node ID: {new_id}") + return new_id + except IOError as e: + if DEBUG >= 2: print(f"IO error creating node_id: {e}") + return str(uuid.uuid4()) + except Exception as e: + if DEBUG >= 2: print(f"Unexpected error creating node_id: {e}") + return str(uuid.uuid4()) + + +def pretty_print_bytes(size_in_bytes: int) -> str: + if size_in_bytes < 1024: + return f"{size_in_bytes} B" + elif size_in_bytes < 1024**2: + return f"{size_in_bytes / 1024:.2f} KB" + elif size_in_bytes < 1024**3: + return f"{size_in_bytes / (1024 ** 2):.2f} MB" + elif size_in_bytes < 1024**4: + return f"{size_in_bytes / (1024 ** 3):.2f} GB" + else: + return f"{size_in_bytes / (1024 ** 4):.2f} TB" + + +def pretty_print_bytes_per_second(bytes_per_second: int) -> str: + if bytes_per_second < 1024: + return f"{bytes_per_second} B/s" + elif bytes_per_second < 1024**2: + return f"{bytes_per_second / 1024:.2f} KB/s" + elif bytes_per_second < 1024**3: + return f"{bytes_per_second / (1024 ** 2):.2f} MB/s" + elif bytes_per_second < 1024**4: + return f"{bytes_per_second / (1024 ** 3):.2f} GB/s" + else: + return f"{bytes_per_second / (1024 ** 4):.2f} TB/s" + + +def get_all_ip_addresses(): + try: + ip_addresses = [] + for interface in netifaces.interfaces(): + ifaddresses = netifaces.ifaddresses(interface) + if netifaces.AF_INET in ifaddresses: + for link in ifaddresses[netifaces.AF_INET]: + ip = link['addr'] + ip_addresses.append(ip) + return list(set(ip_addresses)) + except: + if DEBUG >= 1: print("Failed to get all IP addresses. Defaulting to localhost.") + return ["localhost"] + + +async def shutdown(signal, loop, server): + """Gracefully shutdown the server and close the asyncio loop.""" + print(f"Received exit signal {signal.name}...") + print("Thank you for using exo.") + print_yellow_exo() + server_tasks = [t for t in asyncio.all_tasks() if t is not asyncio.current_task()] + [task.cancel() for task in server_tasks] + print(f"Cancelling {len(server_tasks)} outstanding tasks") + await asyncio.gather(*server_tasks, return_exceptions=True) + await server.stop() + + +def is_frozen(): + return getattr(sys, 'frozen', False) or os.path.basename(sys.executable) == "exo" \ + or ('Contents/MacOS' in str(os.path.dirname(sys.executable))) \ + or '__nuitka__' in globals() or getattr(sys, '__compiled__', False) + + +def get_exo_home() -> Path: + if os.name == "nt": # Check if the OS is Windows + docs_folder = Path(os.environ["USERPROFILE"]) / "Documents" + else: + docs_folder = Path.home() / "Documents" + exo_folder = docs_folder / "Exo" + if not exo_folder.exists(): + exo_folder.mkdir() + return exo_folder + +def get_exo_images_dir() -> Path: + exo_home = get_exo_home() + images_dir = exo_home / "Images" + if not images_dir.exists(): + images_dir.mkdir() + return images_dir + \ No newline at end of file diff --git a/build/lib/exo/inference/__init__.py b/build/lib/exo/inference/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/inference/debug_inference_engine.py b/build/lib/exo/inference/debug_inference_engine.py new file mode 100644 index 00000000..c1ae4b40 --- /dev/null +++ b/build/lib/exo/inference/debug_inference_engine.py @@ -0,0 +1,58 @@ +from exo.inference.inference_engine import InferenceEngine +from exo.inference.shard import Shard +from exo.inference.tinygrad.inference import TinygradDynamicShardInferenceEngine +import asyncio +import numpy as np + + +# An inference engine should work the same for any number of Shards, as long as the Shards are continuous. +async def test_inference_engine(inference_engine_1: InferenceEngine, inference_engine_2: InferenceEngine, model_id: str): + from exo.inference.tinygrad.inference import Tokenizer + from pathlib import Path + + _tokenizer = Tokenizer(str(Path(model_id)/"tokenizer.model")) + + prompt = "In a single word only, what is the last name of the president of the United States? " + resp_full = await inference_engine_1.infer_prompt("A", shard=Shard(model_id=model_id, start_layer=0, end_layer=31, n_layers=32), prompt=prompt) + token_full = await inference_engine_1.sample(resp_full) + + next_resp_full = await inference_engine_1.infer_tensor( + "A", + shard=Shard(model_id=model_id, start_layer=0, end_layer=31, n_layers=32), + input_data=token_full, + ) + + resp1 = await inference_engine_1.infer_prompt("B", shard=Shard(model_id=model_id, start_layer=0, end_layer=30, n_layers=32), prompt=prompt) + resp2 = await inference_engine_2.infer_tensor( + "B", + shard=Shard(model_id=model_id, start_layer=31, end_layer=31, n_layers=32), + input_data=resp1, + ) + token2 = await inference_engine_2.sample(resp2) + resp3 = await inference_engine_1.infer_tensor( + "B", + shard=Shard(model_id=model_id, start_layer=0, end_layer=30, n_layers=32), + input_data=token2, + ) + resp4 = await inference_engine_2.infer_tensor( + "B", + shard=Shard(model_id=model_id, start_layer=31, end_layer=31, n_layers=32), + input_data=resp3, + ) + + print(f"{resp2=}") + print(f"full: {_tokenizer.decode(resp_full)}") + print(f"next full: {_tokenizer.decode(next_resp_full)}") + print(f"resp2: {_tokenizer.decode(resp2)}") + print(f"{resp4=}") + print(f"resp4: {_tokenizer.decode(resp4)}") + + assert np.array_equal(resp_full, resp2) + assert np.array_equal(next_resp_full, resp4) + + +asyncio.run(test_inference_engine( + TinygradDynamicShardInferenceEngine(), + TinygradDynamicShardInferenceEngine(), + "llama3-8b-sfr", +)) diff --git a/build/lib/exo/inference/dummy_inference_engine.py b/build/lib/exo/inference/dummy_inference_engine.py new file mode 100644 index 00000000..09026109 --- /dev/null +++ b/build/lib/exo/inference/dummy_inference_engine.py @@ -0,0 +1,34 @@ +from typing import Optional, Tuple, TYPE_CHECKING +import numpy as np +from exo.inference.inference_engine import InferenceEngine +from exo.inference.shard import Shard +from exo.inference.tokenizers import DummyTokenizer + +class DummyInferenceEngine(InferenceEngine): + def __init__(self): + self.shard = None + self.vocab_size = 1000 + self.hidden_size = 256 + self.eos_token_id = 0 + self.latency_mean = 0.1 + self.latency_stddev = 0.02 + self.num_generate_dummy_tokens = 10 + self.tokenizer = DummyTokenizer() + + async def encode(self, shard: Shard, prompt: str) -> np.ndarray: + return np.array(self.tokenizer.encode(prompt)) + + async def sample(self, x: np.ndarray, temp: float = 0.0, top_p: float = 1.0) -> np.ndarray: + if x[0] > self.num_generate_dummy_tokens: return np.array([self.tokenizer.eos_token_id]) + return x + + async def decode(self, shard: Shard, tokens: np.ndarray) -> str: + return self.tokenizer.decode(tokens) + + async def infer_tensor(self, request_id: str, shard: Shard, input_data: np.ndarray) -> np.ndarray: + await self.ensure_shard(shard) + return input_data + 1 if self.shard.is_last_layer() else input_data + + async def ensure_shard(self, shard: Shard): + if self.shard == shard: return + self.shard = shard diff --git a/build/lib/exo/inference/inference_engine.py b/build/lib/exo/inference/inference_engine.py new file mode 100644 index 00000000..3f82e0e2 --- /dev/null +++ b/build/lib/exo/inference/inference_engine.py @@ -0,0 +1,58 @@ +import numpy as np +import os +from exo.helpers import DEBUG # Make sure to import DEBUG + +from typing import Tuple, Optional +from abc import ABC, abstractmethod +from .shard import Shard + + +class InferenceEngine(ABC): + @abstractmethod + async def encode(self, shard: Shard, prompt: str) -> np.ndarray: + pass + + @abstractmethod + async def sample(self, x: np.ndarray) -> np.ndarray: + pass + + @abstractmethod + async def decode(self, shard: Shard, tokens: np.ndarray) -> str: + pass + + @abstractmethod + async def infer_tensor(self, request_id: str, shard: Shard, input_data: np.ndarray) -> np.ndarray: + pass + + async def infer_prompt(self, request_id: str, shard: Shard, prompt: str, inference_state: Optional[dict] = None) -> np.ndarray: + tokens = await self.encode(shard, prompt) + if shard.model_id != 'stable-diffusion-2-1-base': + x = tokens.reshape(1, -1) + else: + x = tokens + output_data, inference_state = await self.infer_tensor(request_id, shard, x, inference_state) + return output_data, inference_state + +inference_engine_classes = { + "mlx": "MLXDynamicShardInferenceEngine", + "tinygrad": "TinygradDynamicShardInferenceEngine", + "dummy": "DummyInferenceEngine", +} + +def get_inference_engine(inference_engine_name: str, shard_downloader: 'ShardDownloader'): + if DEBUG >= 2: + print(f"get_inference_engine called with: {inference_engine_name}") + if inference_engine_name == "mlx": + from exo.inference.mlx.sharded_inference_engine import MLXDynamicShardInferenceEngine + + return MLXDynamicShardInferenceEngine(shard_downloader) + elif inference_engine_name == "tinygrad": + from exo.inference.tinygrad.inference import TinygradDynamicShardInferenceEngine + import tinygrad.helpers + tinygrad.helpers.DEBUG.value = int(os.getenv("TINYGRAD_DEBUG", default="0")) + + return TinygradDynamicShardInferenceEngine(shard_downloader) + elif inference_engine_name == "dummy": + from exo.inference.dummy_inference_engine import DummyInferenceEngine + return DummyInferenceEngine() + raise ValueError(f"Unsupported inference engine: {inference_engine_name}") diff --git a/build/lib/exo/inference/mlx/__init__.py b/build/lib/exo/inference/mlx/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/inference/mlx/models/StableDiffusionPipeline.py b/build/lib/exo/inference/mlx/models/StableDiffusionPipeline.py new file mode 100644 index 00000000..1f3bd1ca --- /dev/null +++ b/build/lib/exo/inference/mlx/models/StableDiffusionPipeline.py @@ -0,0 +1,307 @@ +# Adapted from https://github.com/ml-explore/mlx-examples/blob/main/stable_diffusion/stable_diffusion/__init__.py + +import time +from typing import Optional, Tuple +import inspect + +import mlx.core as mx +import mlx.nn as nn +from pathlib import Path + +from tqdm import tqdm + +from .sd_models.vae import ModelArgs as VAEArgs +from .sd_models.vae import Autoencoder +from .sd_models.tokenizer import load_tokenizer +from .sd_models.clip import CLIPTextModel +from .sd_models.clip import ModelArgs as CLIPArgs +from .sd_models.unet import UNetConfig, UNetModel + +from dataclasses import dataclass, field +from exo.inference.shard import Shard + +@dataclass +class DiffusionConfig: + beta_schedule: str = "scaled_linear" + beta_start: float = 0.00085 + beta_end: float = 0.012 + num_train_steps: int = 1000 + + @classmethod + def from_dict(cls, params): + return cls(**{k: v for k, v in params.items() if k in inspect.signature(cls).parameters}) + + +#Sampler +def _linspace(a, b, num): + x = mx.arange(0, num) / (num - 1) + return (b - a) * x + a + + +def _interp(y, x_new): + """Interpolate the function defined by (arange(0, len(y)), y) at positions x_new.""" + x_low = x_new.astype(mx.int32) + x_high = mx.minimum(x_low + 1, len(y) - 1) + + y_low = y[x_low] + y_high = y[x_high] + delta_x = x_new - x_low + y_new = y_low * (1 - delta_x) + delta_x * y_high + + return y_new + +class SimpleEulerSampler: + """A simple Euler integrator that can be used to sample from our diffusion models. + + The method ``step()`` performs one Euler step from x_t to x_t_prev. + """ + + def __init__(self, config: DiffusionConfig): + # Compute the noise schedule + if config.beta_schedule == "linear": + betas = _linspace( + config.beta_start, config.beta_end, config.num_train_steps + ) + elif config.beta_schedule == "scaled_linear": + betas = _linspace( + config.beta_start**0.5, config.beta_end**0.5, config.num_train_steps + ).square() + else: + raise NotImplementedError(f"{config.beta_schedule} is not implemented.") + + alphas = 1 - betas + alphas_cumprod = mx.cumprod(alphas) + + self._sigmas = mx.concatenate( + [mx.zeros(1), ((1 - alphas_cumprod) / alphas_cumprod).sqrt()] + ) + + @property + def max_time(self): + return len(self._sigmas) - 1 + + def sample_prior(self, shape, dtype=mx.float32, key=None): + noise = mx.random.normal(shape, key=key) + return ( + noise * self._sigmas[-1] * (self._sigmas[-1].square() + 1).rsqrt() + ).astype(dtype) + + def add_noise(self, x, t, key=None): + noise = mx.random.normal(x.shape, key=key) + s = self.sigmas(t) + return (x + noise * s) * (s.square() + 1).rsqrt() + + def sigmas(self, t): + return _interp(self._sigmas, t) + + def timesteps(self, num_steps: int, start_time=None, dtype=mx.float32): + start_time = start_time or (len(self._sigmas) - 1) + assert 0 < start_time <= (len(self._sigmas) - 1) + steps = _linspace(start_time, 0, num_steps + 1).astype(dtype) + return list(zip(steps, steps[1:])) + + def current_timestep(self, step, total_steps, start_time=None): + if step < total_steps: + steps = self.timesteps(total_steps, start_time) + return steps[step] + else: + return mx.array(0),mx.array(0) + + def step(self, eps_pred, x_t, t, t_prev): + sigma = self.sigmas(t).astype(eps_pred.dtype) + sigma_prev = self.sigmas(t_prev).astype(eps_pred.dtype) + + dt = sigma_prev - sigma + x_t_prev = (sigma.square() + 1).sqrt() * x_t + eps_pred * dt + + x_t_prev = x_t_prev * (sigma_prev.square() + 1).rsqrt() + + return x_t_prev + +@dataclass +class ShardConfig: + model_id:str + start_layer:int + end_layer:int + n_layers:int + +@dataclass +class StableDiffusionConfig: + model_type:str + vae:VAEArgs + text_encoder:CLIPArgs + scheduler:DiffusionConfig + unet:UNetConfig + shard:ShardConfig + + @classmethod + def from_dict(cls, params): + return cls(**{k: v for k, v in params.items() if k in inspect.signature(cls).parameters}) + +@dataclass +class ModelArgs(StableDiffusionConfig): + shard:Shard = field(default_factory=lambda: Shard("", 0, 0, 0)) + + def __post_init__(self): + if isinstance(self.shard, dict): + self.shard = Shard(**self.shard) + + if not isinstance(self.shard, Shard): + raise TypeError(f"Expected shard to be a Shard instance or a dict, got {type(self.shard)} instead") + + +class Model(nn.Module): + def __init__(self, config): + super().__init__() + self.model_type = config.model_type + self.config = config + self.model_path = config.vae['path'].split('/vae')[0] + self.shard = config.shard + self.shard_clip, self.shard_encoder, self.shard_unet, self.shard_decoder = model_shards(config.shard) + self.config_clip=CLIPArgs.from_dict(config.text_encoder['config']) + if self.shard_clip.start_layer != -1: + self.text_encoder = CLIPTextModel(self.config_clip, shard=self.shard_clip) + else: + self.text_encoder = nn.Identity() + self.tokenizer = load_tokenizer(Path(self.model_path), "vocab.json", "merges.txt") + self.diffusion_config = DiffusionConfig.from_dict(config.scheduler['config']) + self.sampler = SimpleEulerSampler(self.diffusion_config) + if self.shard_unet.start_layer!=-1: + self.config_unet = UNetConfig.from_dict(config.unet['config']) + self.unet = UNetModel(self.config_unet, self.shard_unet) + else: + self.unet = nn.Identity() + self.config_vae=VAEArgs.from_dict(config.vae['config']) + if self.shard_encoder.start_layer != -1: + self.encoder=Autoencoder(self.config_vae, self.shard_encoder, "vae_encoder") + else: + self.encoder = nn.Identity() + if self.shard_decoder.start_layer != -1: + self.decoder=Autoencoder(self.config_vae, self.shard_decoder, "vae_decoder") + else: + self.decoder = nn.Identity() + + def __call__(self,x, step= 0, cfg_weight: float = 7.5,total_steps=50,conditioning=None,mask=None,residual=None,x_t_prev=None,is_finished=False,is_step_finished=False, image=None, strength=0.7, start_step=None): + t, t_prev = self.sampler.current_timestep(step=step, total_steps=total_steps, start_time=start_step) + is_finished = False + is_step_finished = False + if t.item()==1000: + if self.shard_clip.start_layer == 0: + conditioning = x + if self.shard_clip.start_layer != -1: + conditioning, mask= self.text_encoder(conditioning,mask) + seed = int(time.time()) + mx.random.seed(seed) + if image is None: + if self.shard_encoder.is_last_layer(): + x = self.sampler.sample_prior((1, *(64, 64), self.config_vae.latent_channels_in), dtype=mx.float32) + x_t_prev=x + start_step = self.sampler.max_time + else: + if self.shard_encoder.start_layer != -1: + image= self.encoder.encode(image) + if self.shard_encoder.is_last_layer(): + start_step = self.sampler.max_time*strength + total_steps = int(total_steps*strength) + image = mx.broadcast_to(image, (1,) + image.shape[1:]) + x_t_prev=self.sampler.add_noise(image, mx.array(start_step)) + image = None + t, t_prev = self.sampler.current_timestep(step=step, total_steps=total_steps, start_time=start_step) + # Perform the denoising loop + if self.shard_unet.start_layer != -1: + with tqdm(total=total_steps,initial=step+1) as pbar: + if step 1 else x + else: + x_t_unet = x + t_unet = mx.broadcast_to(t, [len(x_t_unet)]) + x, residual= self.unet(x_t_unet, t_unet, encoder_x=conditioning, residuals=residual) + if self.shard_unet.is_last_layer(): + if cfg_weight > 1: + eps_text, eps_neg = x.split(2) + eps_pred = eps_neg + cfg_weight * (eps_text - eps_neg) + x = self.sampler.step(eps_pred, x_t_prev, t, t_prev) + x_t_prev=x + mx.eval(x) + + if self.shard_decoder.is_last_layer(): + is_step_finished=True + if self.shard_decoder.start_layer != -1: + x=self.decoder.decode(x) + if self.shard_decoder.is_last_layer(): + x = mx.clip(x / 2 + 0.5, 0, 1) + B, H, W, C = x.shape + x = x.reshape(1, B // 1, H, W, C).transpose(0, 2, 1, 3, 4) + x = x.reshape(1 * H, B // 1 * W, C) + x = (x * 255).astype(mx.uint8) + if t_prev.item() ==0: + is_finished=True + mx.eval(x) + + return x, {'conditioning':conditioning, 'mask':mask,'residual':residual,'x_t_prev':x_t_prev,'is_finished':is_finished,'is_step_finished':is_step_finished, 'step':step, 'total_steps':total_steps, 'start_step':start_step, 'image':image} + + + def load(self): + if self.shard_encoder.start_layer != -1: + vae_weights = mx.load(self.config_vae.weight_files[0]) + vae_weights = self.encoder.sanitize(vae_weights) + self.encoder.load_weights(list(vae_weights.items()), strict=True) + if self.shard_decoder.start_layer != -1: + vae_weights = mx.load(self.config_vae.weight_files[0]) + vae_weights = self.decoder.sanitize(vae_weights) + self.decoder.load_weights(list(vae_weights.items()), strict=True) + if self.shard_clip.start_layer != -1: + clip_weights = mx.load(self.config_clip.weight_files[0]) + clip_weights = self.text_encoder.sanitize(clip_weights) + self.text_encoder.load_weights(list(clip_weights.items()), strict=True) + if self.shard_unet.start_layer !=-1: + unet_weights = mx.load(self.config_unet.weight_files[0]) + unet_weights = self.unet.sanitize(unet_weights) + self.unet.load_weights(list(unet_weights.items()), strict=True) + +def model_shards(shard:ShardConfig): + def create_shard(shard, model_ranges): + start_layer = shard.start_layer + end_layer = shard.end_layer + + shards = {} + + for model_name, (range_start, range_end) in model_ranges.items(): + if start_layer < range_end and end_layer >= range_start: + # Calculate the overlap with the model range + overlap_start = max(start_layer, range_start) + overlap_end = min(end_layer, range_end - 1) + + # Adjust the layers relative to the model's range + relative_start = overlap_start - range_start + relative_end = overlap_end - range_start + shards[model_name] = Shard(model_name, relative_start, relative_end, range_end - range_start) + else: + # If no overlap, create a zero-layer shard + shards[model_name] = Shard(model_name, -1, -1, range_end - range_start) + + return shards + + # Define the ranges for different models + model_ranges = { + 'clip': (0, 12), + 'vae_encoder':(12,17), + 'unet':(17,26), + 'vae_decoder': (26, 31) # Example range for unet + } + + # Call the function and get the shards for all models + shards = create_shard(shard, model_ranges) + + # Access individual shards + shard_clip = shards['clip'] + shard_encoder = shards['vae_encoder'] + shard_unet = shards['unet'] + shard_decoder = shards['vae_decoder'] + + return shard_clip, shard_encoder, shard_unet, shard_decoder + + + diff --git a/build/lib/exo/inference/mlx/models/__init__.py b/build/lib/exo/inference/mlx/models/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/inference/mlx/models/base.py b/build/lib/exo/inference/mlx/models/base.py new file mode 100644 index 00000000..5181adfd --- /dev/null +++ b/build/lib/exo/inference/mlx/models/base.py @@ -0,0 +1,9 @@ +from typing import Optional +import mlx.core as mx +import mlx.nn as nn +from mlx_lm.models.cache import KVCache + + +class IdentityBlock(nn.Module): + def __call__(self, x: mx.array, mask: Optional[mx.array] = None, cache: Optional[KVCache] = None) -> mx.array: + return x diff --git a/build/lib/exo/inference/mlx/models/deepseek_v2.py b/build/lib/exo/inference/mlx/models/deepseek_v2.py new file mode 100644 index 00000000..8952e9e6 --- /dev/null +++ b/build/lib/exo/inference/mlx/models/deepseek_v2.py @@ -0,0 +1,127 @@ +from dataclasses import dataclass, field +from typing import Optional + +import mlx.core as mx +import mlx.nn as nn + +from mlx_lm.models.cache import KVCache +from mlx_lm.models.deepseek_v2 import ModelArgs, DeepseekV2DecoderLayer +from .base import IdentityBlock +from exo.inference.shard import Shard + + +@dataclass +class ModelArgs(ModelArgs): + shard: Shard = field(default_factory=lambda: Shard("", 0, 0, 0)) + + def __post_init__(self): + if isinstance(self.shard, Shard): + return + if not isinstance(self.shard, dict): + raise TypeError(f"Expected shard to be a Shard instance or a dict, got {type(self.shard)} instead") + + self.shard = Shard(**self.shard) + + +class DeepseekV2Model(nn.Module): + def __init__(self, config: ModelArgs): + super().__init__() + self.args = config + self.num_hidden_layers = config.num_hidden_layers + self.vocab_size = config.vocab_size + if self.args.shard.is_first_layer(): + self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size) + + self.layers = [] + for i in range(self.num_hidden_layers): + if self.args.shard.start_layer <= i <= self.args.shard.end_layer: + self.layers.append(DeepseekV2DecoderLayer(config, i)) + else: + self.layers.append(IdentityBlock()) + + if self.args.shard.is_last_layer(): + self.norm = nn.RMSNorm(config.hidden_size, eps=config.rms_norm_eps) + + def __call__( + self, + x: mx.array, + cache: Optional[KVCache] = None, + ) -> mx.array: + if self.args.shard.is_first_layer(): + h = self.embed_tokens(x) + else: + h = x + + mask = None + T = h.shape[1] + if T > 1: + mask = nn.MultiHeadAttention.create_additive_causal_mask(T) + mask = mask.astype(h.dtype) + + if cache is None: + cache = [None]*len(self.layers) + + for layer, c in zip(self.layers, cache): + h = layer(h, mask, c) + + if self.args.shard.is_last_layer(): + h = self.norm(h) + return h + + +class Model(nn.Module): + def __init__(self, config: ModelArgs): + super().__init__() + self.args = config + self.model_type = config.model_type + self.model = DeepseekV2Model(config) + if self.args.shard.is_last_layer(): + self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False) + + def __call__( + self, + inputs: mx.array, + cache: Optional[KVCache] = None, + ): + out = self.model(inputs, cache) + if self.args.shard.is_last_layer(): + return self.lm_head(out) + return out + + def sanitize(self, weights): + shard_state_dict = {} + + for key, value in weights.items(): + if key.startswith('model.layers.'): + layer_num = int(key.split('.')[2]) + if self.args.shard.start_layer <= layer_num <= self.args.shard.end_layer: + shard_state_dict[key] = value + elif self.args.shard.is_first_layer() and key.startswith('model.embed_tokens'): + shard_state_dict[key] = value + elif self.args.shard.is_last_layer() and (key.startswith('model.norm') or key.startswith('lm_head')): + shard_state_dict[key] = value + + for l in range(self.args.num_hidden_layers): + prefix = f"model.layers.{l}" + for n, m in [("w1", "gate_proj"), ("w2", "down_proj"), ("w3", "up_proj")]: + for k in ["weight", "scales", "biases"]: + if f"{prefix}.mlp.experts.0.{m}.{k}" in shard_state_dict: + to_join = [shard_state_dict.pop(f"{prefix}.mlp.experts.{e}.{m}.{k}") for e in range(self.args.n_routed_experts)] + shard_state_dict[f"{prefix}.mlp.switch_mlp.{m}.{k}"] = mx.stack(to_join) + + return shard_state_dict + + @property + def layers(self): + return self.model.layers + + @property + def head_dim(self): + return ( + self.args.qk_nope_head_dim + self.args.qk_rope_head_dim, + self.args.v_head_dim, + ) + + @property + def n_kv_heads(self): + return self.args.num_key_value_heads diff --git a/build/lib/exo/inference/mlx/models/gemma2.py b/build/lib/exo/inference/mlx/models/gemma2.py new file mode 100644 index 00000000..88957fd9 --- /dev/null +++ b/build/lib/exo/inference/mlx/models/gemma2.py @@ -0,0 +1,118 @@ +from dataclasses import dataclass, field + +import mlx.core as mx +import mlx.nn as nn + +from mlx_lm.models.base import create_attention_mask +from mlx_lm.models.gemma2 import TransformerBlock, ModelArgs, RMSNorm + +from ...shard import Shard +from .base import IdentityBlock + + +@dataclass +class ModelArgs(ModelArgs): + shard: Shard = field(default_factory=lambda: Shard("", 0, 0, 0)) + + def __post_init__(self): + if isinstance(self.shard, Shard): + return + if not isinstance(self.shard, dict): + raise TypeError(f"Expected shard to be a Shard instance or a dict, got {type(self.shard)} instead") + + self.shard = Shard(**self.shard) + + +class GemmaModel(nn.Module): + def __init__(self, args: ModelArgs): + super().__init__() + self.args = args + self.vocab_size = args.vocab_size + self.num_hidden_layers = args.num_hidden_layers + assert self.vocab_size > 0 + if args.shard.is_first_layer() or args.shard.is_last_layer(): + self.embed_tokens = nn.Embedding(args.vocab_size, args.hidden_size) + self.layers = [] + for i in range(self.num_hidden_layers): + if args.shard.start_layer <= i <= args.shard.end_layer: + self.layers.append(TransformerBlock(args=args)) + else: + self.layers.append(IdentityBlock()) + if args.shard.is_last_layer(): + self.norm = RMSNorm(args.hidden_size, eps=args.rms_norm_eps) + + def __call__( + self, + inputs: mx.array, + cache=None, + ): + if self.args.shard.is_first_layer(): + h = self.embed_tokens(inputs) + h = h * (self.args.hidden_size**0.5) + else: + h = inputs + + mask = None + if h.ndim > 1 and h.shape[1] > 1: + mask = create_attention_mask(h, cache) + + if cache is None: + cache = [None]*len(self.layers) + + for layer, c in zip(self.layers, cache): + h = layer(h, mask, cache=c) + + if self.args.shard.is_last_layer(): + h = self.norm(h) + return h + + +class Model(nn.Module): + def __init__(self, args: ModelArgs): + super().__init__() + self.args = args + self.model_type = args.model_type + self.model = GemmaModel(args) + if args.shard.is_last_layer(): + self.final_logit_softcapping = args.final_logit_softcapping + + def __call__( + self, + inputs: mx.array, + cache=None, + ): + out = self.model(inputs, cache) + if self.args.shard.is_last_layer(): + out = self.model.embed_tokens.as_linear(out) + out = mx.tanh(out / self.final_logit_softcapping) + out = out * self.final_logit_softcapping + return out + + def sanitize(self, weights): + shard_state_dict = {} + + for key, value in weights.items(): + if "self_attn.rotary_emb.inv_freq" in key: + continue + if key.startswith('model.layers.'): + layer_num = int(key.split('.')[2]) + if self.args.shard.start_layer <= layer_num <= self.args.shard.end_layer: + shard_state_dict[key] = value + elif (self.args.shard.is_first_layer() or self.args.shard.is_last_layer()) and key.startswith('model.embed_tokens'): + shard_state_dict[key] = value + elif self.args.shard.is_last_layer() and (key.startswith('model.norm')): + shard_state_dict[key] = value + + return shard_state_dict + + @property + def layers(self): + return self.model.layers + + @property + def head_dim(self): + return self.args.head_dim + + @property + def n_kv_heads(self): + return self.args.num_key_value_heads diff --git a/build/lib/exo/inference/mlx/models/llama.py b/build/lib/exo/inference/mlx/models/llama.py new file mode 100644 index 00000000..8b069ecc --- /dev/null +++ b/build/lib/exo/inference/mlx/models/llama.py @@ -0,0 +1,125 @@ +from dataclasses import dataclass, field + +import mlx.core as mx +import mlx.nn as nn + +from mlx_lm.models.base import create_attention_mask +from mlx_lm.models.llama import TransformerBlock, ModelArgs + +from ...shard import Shard +from .base import IdentityBlock + + +@dataclass +class ModelArgs(ModelArgs): + shard: Shard = field(default_factory=lambda: Shard("", 0, 0, 0)) + + def __post_init__(self): + super().__post_init__() # Ensure parent initializations are respected + + if isinstance(self.shard, Shard): + return + if not isinstance(self.shard, dict): + raise TypeError(f"Expected shard to be a Shard instance or a dict, got {type(self.shard)} instead") + + self.shard = Shard(**self.shard) + + +class LlamaModel(nn.Module): + def __init__(self, args: ModelArgs): + super().__init__() + self.args = args + self.vocab_size = args.vocab_size + self.num_hidden_layers = args.num_hidden_layers + assert self.vocab_size > 0 + if args.shard.is_first_layer() or (args.shard.is_last_layer() and args.tie_word_embeddings): + self.embed_tokens = nn.Embedding(args.vocab_size, args.hidden_size) + self.layers = [] + for i in range(self.num_hidden_layers): + if args.shard.start_layer <= i <= args.shard.end_layer: + self.layers.append(TransformerBlock(args=args)) + else: + self.layers.append(IdentityBlock()) + if args.shard.is_last_layer(): + self.norm = nn.RMSNorm(args.hidden_size, eps=args.rms_norm_eps) + + def __call__( + self, + inputs: mx.array, + cache=None, + ): + if self.args.shard.is_first_layer(): + h = self.embed_tokens(inputs) + else: + h = inputs + + mask = None + if h.ndim > 1 and h.shape[1] > 1: + mask = create_attention_mask(h, cache) + + if cache is None: + cache = [None]*len(self.layers) + + for layer, c in zip(self.layers, cache): + h = layer(h, mask, cache=c) + + if self.args.shard.is_last_layer(): + h = self.norm(h) + return h + + +class Model(nn.Module): + def __init__(self, args: ModelArgs): + super().__init__() + self.args = args + self.model_type = args.model_type + self.model = LlamaModel(args) + if args.shard.is_last_layer(): + if not args.tie_word_embeddings: + self.lm_head = nn.Linear(args.hidden_size, args.vocab_size, bias=False) + + def __call__( + self, + inputs: mx.array, + cache=None, + ): + out = self.model(inputs, cache) + if self.args.shard.is_last_layer(): + if self.args.tie_word_embeddings: + out = self.model.embed_tokens.as_linear(out) + else: + out = self.lm_head(out) + return out + + def sanitize(self, weights): + shard_state_dict = {} + + for key, value in weights.items(): + if "self_attn.rotary_emb.inv_freq" in key: + continue + if key.startswith('model.layers.'): + layer_num = int(key.split('.')[2]) + if self.args.shard.start_layer <= layer_num <= self.args.shard.end_layer: + shard_state_dict[key] = value + elif self.args.shard.is_first_layer() and key.startswith('model.embed_tokens'): + shard_state_dict[key] = value + elif (self.args.shard.is_last_layer() and self.args.tie_word_embeddings) and key.startswith('model.embed_tokens'): + shard_state_dict[key] = value + elif (self.args.shard.is_last_layer() and not self.args.tie_word_embeddings) and key.startswith('lm_head'): + shard_state_dict[key] = value + elif self.args.shard.is_last_layer() and (key.startswith('model.norm')): + shard_state_dict[key] = value + + return shard_state_dict + + @property + def layers(self): + return self.model.layers + + @property + def head_dim(self): + return (self.args.head_dim or self.args.hidden_size // self.args.num_attention_heads) + + @property + def n_kv_heads(self): + return self.args.num_key_value_heads diff --git a/build/lib/exo/inference/mlx/models/llava.py b/build/lib/exo/inference/mlx/models/llava.py new file mode 100644 index 00000000..b734b09b --- /dev/null +++ b/build/lib/exo/inference/mlx/models/llava.py @@ -0,0 +1,585 @@ +# Copyright © 2024 Apple Inc. + +import math +import inspect +from dataclasses import dataclass, field +from typing import Optional, Dict, Union + +import mlx.core as mx +import mlx.nn as nn +from mlx_lm.models.base import BaseModelArgs, KVCache +from exo.inference.shard import Shard +from .base import IdentityBlock +import numpy as np + + +@dataclass +class VisionConfig: + model_type: str + num_hidden_layers: int = 24 + hidden_size: int = 1024 + intermediate_size: int = 4096 + num_attention_heads: int = 16 + image_size: int = 336 + patch_size: int = 14 + projection_dim: int = 768 + vocab_size: int = 32000 + num_channels: int = 3 + layer_norm_eps: float = 1e-5 + + @classmethod + def from_dict(cls, params): + return cls(**{k: v for k, v in params.items() if k in inspect.signature(cls).parameters}) + + +class VisionAttention(nn.Module): + def __init__( + self, + dims: int, + num_heads: int, + query_input_dims: Optional[int] = None, + key_input_dims: Optional[int] = None, + value_input_dims: Optional[int] = None, + value_dims: Optional[int] = None, + value_output_dims: Optional[int] = None, + bias: bool = False, + ): + super().__init__() + + if (dims % num_heads) != 0: + raise ValueError("The input feature dimensions should be divisible by the " + f"number of heads ({dims} % {num_heads}) != 0") + + query_input_dims = query_input_dims or dims + key_input_dims = key_input_dims or dims + value_input_dims = value_input_dims or key_input_dims + value_dims = value_dims or dims + value_output_dims = value_output_dims or dims + + self.num_heads = num_heads + self.q_proj = nn.Linear(query_input_dims, dims, bias=bias) + self.k_proj = nn.Linear(key_input_dims, dims, bias=bias) + self.v_proj = nn.Linear(value_input_dims, value_dims, bias=bias) + self.out_proj = nn.Linear(value_dims, value_output_dims, bias=bias) + + def __call__(self, queries, keys, values, mask=None): + queries = self.q_proj(queries) + keys = self.k_proj(keys) + values = self.v_proj(values) + + num_heads = self.num_heads + B, L, D = queries.shape + _, S, _ = keys.shape + queries = queries.reshape(B, L, num_heads, -1).transpose(0, 2, 1, 3) + keys = keys.reshape(B, S, num_heads, -1).transpose(0, 2, 3, 1) + values = values.reshape(B, S, num_heads, -1).transpose(0, 2, 1, 3) + + scale = math.sqrt(1/queries.shape[-1]) + scores = (queries*scale) @ keys + if mask is not None: + scores = scores + mask.astype(scores.dtype) + scores = mx.softmax(scores, axis=-1) + values_hat = (scores @ values).transpose(0, 2, 1, 3).reshape(B, L, -1) + + return self.out_proj(values_hat) + + +class VisionMLP(nn.Module): + def __init__(self, config: VisionConfig): + super().__init__() + self.activation_fn = nn.GELU(approx="fast") + self.fc1 = nn.Linear(config.hidden_size, config.intermediate_size) + self.fc2 = nn.Linear(config.intermediate_size, config.hidden_size) + + def __call__(self, x: mx.array) -> mx.array: + x = self.activation_fn(self.fc1(x)) + x = self.fc2(x) + return x + + +class VisionEncoderLayer(nn.Module): + def __init__(self, config: VisionConfig): + super().__init__() + self.embed_dim = config.hidden_size + self.self_attn = VisionAttention(config.hidden_size, config.num_attention_heads, bias=True) + self.layer_norm1 = nn.LayerNorm(self.embed_dim, eps=config.layer_norm_eps) + self.mlp = VisionMLP(config) + self.layer_norm2 = nn.LayerNorm(self.embed_dim, eps=config.layer_norm_eps) + + def __call__(self, x: mx.array, mask: Optional[mx.array] = None) -> mx.array: + y = self.layer_norm1(x) + y = self.self_attn(y, y, y, mask) + x = x + y + y = self.layer_norm2(x) + y = self.mlp(y) + return x + y + + +class VisionEncoder(nn.Module): + def __init__(self, config: VisionConfig): + super().__init__() + self.layers = [VisionEncoderLayer(config) for _ in range(config.num_hidden_layers)] + + +class VisionEmbeddings(nn.Module): + def __init__(self, config: VisionConfig): + super().__init__() + self.config = config + self.embed_dim = config.hidden_size + self.image_size = config.image_size + self.patch_size = config.patch_size + + self.class_embedding = mx.zeros((config.hidden_size,)) + + self.patch_embedding = nn.Conv2d( + in_channels=config.num_channels, + out_channels=self.embed_dim, + kernel_size=self.patch_size, + stride=self.patch_size, + bias=False, + ) + + self.num_patches = (self.image_size // self.patch_size)**2 + self.num_positions = self.num_patches + 1 + self.position_embedding = nn.Embedding(self.num_positions, self.embed_dim) + + def __call__(self, x: mx.array) -> mx.array: + batch_size = x.shape[0] + patch_embeddings = self.patch_embedding(x) + patch_embeddings = mx.flatten(patch_embeddings, start_axis=1, end_axis=2) + embed_dim = patch_embeddings.shape[-1] + cls_embeddings = mx.broadcast_to(self.class_embedding, (batch_size, 1, embed_dim)) + embeddings = mx.concatenate((cls_embeddings, patch_embeddings), axis=1) + embeddings += self.position_embedding.weight + return embeddings + + +class ClipVisionModel(nn.Module): + def __init__(self, config: VisionConfig): + super().__init__() + self.embeddings = VisionEmbeddings(config) + self.pre_layrnorm = nn.LayerNorm(config.hidden_size) + self.encoder = VisionEncoder(config) + self.post_layernorm = nn.LayerNorm(config.hidden_size) + + def __call__( + self, + x: mx.array, + output_hidden_states: Optional[bool] = None, + ) -> mx.array: + x = self.embeddings(x) + x = self.pre_layrnorm(x) + + encoder_states = (x,) if output_hidden_states else None + + for l in self.encoder.layers: + x = l(x, mask=None) + if output_hidden_states: + encoder_states = encoder_states + (x,) + + pooler_output = self.post_layernorm(x[:, 0, :]) + return pooler_output, x, encoder_states + + +class VisionModel(nn.Module): + def __init__(self, config: VisionConfig): + super().__init__() + + self.model_type = config.model_type + if self.model_type != "clip_vision_model": + raise ValueError(f"Unsupported model type: {self.model_type}") + + self.vision_model = ClipVisionModel(config) + + def __call__(self, x: mx.array, output_hidden_states: Optional[bool] = None) -> mx.array: + return self.vision_model(x, output_hidden_states) + + def sanitize(self, weights): + sanitized_weights = {} + for k, v in weights.items(): + if "position_ids" in k: + # Remove unused position_ids + continue + elif "patch_embedding.weight" in k: + # PyTorch conv2d weight tensors have shape: + # [out_channels, in_channels, kH, KW] + # MLX conv2d expects the weight be of shape: + # [out_channels, kH, KW, in_channels] + sanitized_weights[k] = v.transpose(0, 2, 3, 1) + else: + sanitized_weights[k] = v + + return sanitized_weights + + +@dataclass +class TextConfig: + model_type: str + hidden_size: int = 4096 + num_hidden_layers: int = 32 + intermediate_size: int = 11008 + num_attention_heads: int = 32 + head_dim: int = None + rms_norm_eps: float = 1e-6 + vocab_size: int = 32000 + num_key_value_heads: int = None + rope_theta: float = 10000 + rope_traditional: bool = False + rope_scaling: Optional[Dict[str, Union[float, str]]] = None + + @classmethod + def from_dict(cls, params): + return cls(**{k: v for k, v in params.items() if k in inspect.signature(cls).parameters}) + + def __post_init__(self): + if self.num_key_value_heads is None: + self.num_key_value_heads = self.num_attention_heads + + if self.head_dim is None: + self.head_dim = self.hidden_size // self.num_attention_heads + + if self.model_type is None: + self.model_type = "llama" + + if self.rope_scaling: + required_keys = {"factor", "type"} + if not all(key in self.rope_scaling for key in required_keys): + raise ValueError(f"rope_scaling must contain keys {required_keys}") + + if self.rope_scaling["type"] != "linear": + raise ValueError("rope_scaling 'type' currently only supports 'linear'") + + +class TextAttention(nn.Module): + def __init__(self, config: TextConfig): + super().__init__() + + dim = config.hidden_size + self.n_heads = n_heads = config.num_attention_heads + self.n_kv_heads = n_kv_heads = config.num_key_value_heads + + self.repeats = n_heads // n_kv_heads + + head_dim = config.hidden_size // n_heads + self.scale = head_dim**-0.5 + + self.q_proj = nn.Linear(dim, n_heads*head_dim, bias=False) + self.k_proj = nn.Linear(dim, n_kv_heads*head_dim, bias=False) + self.v_proj = nn.Linear(dim, n_kv_heads*head_dim, bias=False) + self.o_proj = nn.Linear(n_heads*head_dim, dim, bias=False) + + rope_scale = (1/config.rope_scaling["factor"] if config.rope_scaling is not None and config.rope_scaling["type"] == "linear" else 1) + self.rope = nn.RoPE( + head_dim, + traditional=config.rope_traditional, + base=config.rope_theta, + scale=rope_scale, + ) + + def __call__( + self, + x: mx.array, + mask: Optional[mx.array] = None, + cache: Optional[KVCache] = None, + ) -> mx.array: + B, L, D = x.shape + + queries, keys, values = self.q_proj(x), self.k_proj(x), self.v_proj(x) + + # Prepare the queries, keys and values for the attention computation + queries = queries.reshape(B, L, self.n_heads, -1).transpose(0, 2, 1, 3) + keys = keys.reshape(B, L, self.n_kv_heads, -1).transpose(0, 2, 1, 3) + values = values.reshape(B, L, self.n_kv_heads, -1).transpose(0, 2, 1, 3) + + if cache is not None: + queries = self.rope(queries, offset=cache.offset) + keys = self.rope(keys, offset=cache.offset) + keys, values = cache.update_and_fetch(keys, values) + else: + queries = self.rope(queries) + keys = self.rope(keys) + + output = mx.fast.scaled_dot_product_attention(queries, keys, values, scale=self.scale, mask=mask) + output = output.transpose(0, 2, 1, 3).reshape(B, L, -1) + return self.o_proj(output) + + +class TextMLP(nn.Module): + def __init__(self, dim, hidden_dim): + super().__init__() + self.gate_proj = nn.Linear(dim, hidden_dim, bias=False) + self.down_proj = nn.Linear(hidden_dim, dim, bias=False) + self.up_proj = nn.Linear(dim, hidden_dim, bias=False) + + def __call__(self, x) -> mx.array: + return self.down_proj(nn.silu(self.gate_proj(x))*self.up_proj(x)) + + +class TransformerBlock(nn.Module): + def __init__(self, config: TextConfig): + super().__init__() + self.num_attention_heads = config.num_attention_heads + self.hidden_size = config.hidden_size + self.self_attn = TextAttention(config) + self.mlp = TextMLP(config.hidden_size, config.intermediate_size) + self.input_layernorm = nn.RMSNorm(config.hidden_size, eps=config.rms_norm_eps) + self.post_attention_layernorm = nn.RMSNorm(config.hidden_size, eps=config.rms_norm_eps) + self.config = config + + def __call__( + self, + x: mx.array, + mask: Optional[mx.array] = None, + cache: Optional[KVCache] = None, + ) -> mx.array: + r = self.self_attn(self.input_layernorm(x), mask, cache) + h = x + r + r = self.mlp(self.post_attention_layernorm(h)) + out = h + r + return out + + +class Llama(nn.Module): + def __init__(self, config: TextConfig, shard: Shard): + super().__init__() + self.config = config + self.shard = shard + self.vocab_size = config.vocab_size + self.model_type = config.model_type + self.num_hidden_layers = config.num_hidden_layers + self.num_key_value_heads = config.num_key_value_heads + self.head_dim = config.head_dim + assert self.vocab_size > 0 + if self.shard.is_first_layer(): + self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size) + self.layers = [] + for i in range(self.num_hidden_layers): + if self.shard.start_layer <= i <= self.shard.end_layer: + self.layers.append(TransformerBlock(config=config)) + else: + self.layers.append(IdentityBlock()) + if self.shard.is_last_layer(): + self.norm = nn.RMSNorm(config.hidden_size, eps=config.rms_norm_eps) + + def __call__( + self, + inputs: mx.array, + cache=None, + inputs_embeds=None, + ): + # for passing merged input embeddings + if inputs_embeds is None: + if self.shard.is_first_layer(): + h = self.embed_tokens(inputs) + else: + h = inputs + else: + h = inputs_embeds + + mask = None + if h.shape[1] > 1: + mask = nn.MultiHeadAttention.create_additive_causal_mask(h.shape[1]) + mask = mask.astype(h.dtype) + + if cache is None: + cache = [None]*len(self.layers) + + for layer, c in zip(self.layers, cache): + h = layer(h, mask, c) + + if self.shard.is_last_layer(): + h = self.norm(h) + return h + + +class LanguageModel(nn.Module): + def __init__(self, config: TextConfig, shard: Shard): + super().__init__() + self.model_type = config.model_type + if self.model_type != "llama": + raise ValueError(f"Model type {self.model_type} not supported. Currently only 'llama' is supported") + self.shard = shard + self.model = Llama(config, shard) + if self.shard.is_last_layer(): + self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False) + + def __call__( + self, + inputs: mx.array, + cache=None, + inputs_embeds=None, + ): + out = self.model(inputs, cache, inputs_embeds) + if self.shard.is_last_layer(): + out = self.lm_head(out) + return out + + def sanitize(self, weights): + shard_state_dict = {} + for key, value in weights.items(): + if "self_attn.rotary_emb.inv_freq" in key: + continue + + if key.startswith('language_model.model.layers.'): + layer_num = int(key.split('.')[3]) + if layer_num < self.shard.start_layer or layer_num > self.shard.end_layer: + continue + if not self.shard.is_first_layer() and key.startswith('language_model.model.embed_tokens'): + continue + elif not self.shard.is_last_layer() and (key.startswith('language_model.model.norm') or key.startswith('language_model.lm_head')): + continue + + shard_state_dict[key] = value + + return shard_state_dict + + +@dataclass +class LlaVAConfig(BaseModelArgs): + text_config: TextConfig + vision_config: VisionConfig = None + model_type: str = "llava" + ignore_index: int = -100 + image_token_index: int = 32000 + vision_feature_select_strategy: str = "default" + vision_feature_layer: int = -2 + vocab_size: int = 32000 + + @classmethod + def from_dict(cls, params): + updated_params = {} + class_params = inspect.signature(cls).parameters + for k, v in params.items(): + if k in class_params: + if k in ["text_config", "vision_config"]: + v = class_params[k].annotation.from_dict(v) + updated_params.update({k: v}) + + return cls(**updated_params) + + +@dataclass +class ModelArgs(LlaVAConfig): + shard: Shard = field(default_factory=lambda: Shard("", 0, 0, 0)) + + def __post_init__(self): + if isinstance(self.shard, dict): + self.shard = Shard(**self.shard) + + if not isinstance(self.shard, Shard): + raise TypeError(f"Expected shard to be a Shard instance or a dict, got {type(self.shard)} instead") + + if not self.shard.is_first_layer(): + self.vision_config = None + + +class LlavaMultiModalProjector(nn.Module): + def __init__(self, config: LlaVAConfig): + super().__init__() + self.linear_1 = nn.Linear(config.vision_config.hidden_size, config.text_config.hidden_size, bias=True) + self.gelu = nn.GELU() + self.linear_2 = nn.Linear(config.text_config.hidden_size, config.text_config.hidden_size, bias=True) + + def __call__(self, x: mx.array) -> mx.array: + x = self.linear_1(x) + x = self.gelu(x) + x = self.linear_2(x) + return x + + +class Model(nn.Module): + def __init__(self, config: ModelArgs): + super().__init__() + self.config = config + self.model_type = config.model_type + if config.vision_config: + self.vision_tower = VisionModel(config.vision_config) + self.multi_modal_projector = LlavaMultiModalProjector(config) + self.vision_feature_layer = config.vision_feature_layer + self.vision_feature_select_strategy = config.vision_feature_select_strategy + self.language_model = LanguageModel(config.text_config, config.shard) + + def get_input_embeddings( + self, + input_ids: Optional[mx.array] = None, + pixel_values: Optional[mx.array] = None, + ): + if pixel_values is None: + return self.language_model(input_ids) + + # Get the input embeddings from the language model + inputs_embeds = self.language_model.model.embed_tokens(input_ids) + + # Get the ouptut hidden states from the vision model + *_, hidden_states = self.vision_tower(pixel_values.transpose(0, 2, 3, 1), output_hidden_states=True) + + # Select the hidden states from the desired layer + selected_image_feature = hidden_states[self.vision_feature_layer] + + if self.vision_feature_select_strategy == "default": + selected_image_feature = selected_image_feature[:, 1:] + elif self.vision_feature_select_strategy == "full": + selected_image_feature = selected_image_feature + else: + raise ValueError("Unexpected feature selection strategy: " + f"{self.vision_feature_select_strategy}") + + # Pass image features through the multi-modal projector + image_features = self.multi_modal_projector(selected_image_feature) + + # Insert special image tokens in the input_ids + final_inputs_embeds = self._merge_input_ids_with_image_features(image_features, inputs_embeds, input_ids) + return final_inputs_embeds + + def _merge_input_ids_with_image_features(self, image_features, inputs_embeds, input_ids): + image_token_index = self.config.image_token_index + num_images, num_image_patches, embed_dim = image_features.shape + + # Positions of tokens in input_ids, assuming batch size is 1 + image_positions = np.where(input_ids[0] == image_token_index)[0].tolist() + + if len(image_positions) != num_images: + raise ValueError(f"The number of image tokens ({len(image_positions)}) does not " + f" match the number of image inputs ({num_images}).") + + text_segments = [] + start_idx = 0 + + for position in image_positions: + text_segments.append(inputs_embeds[:, start_idx:position]) + start_idx = position + 1 + + image_embeddings = mx.split(image_features, image_features.shape[0]) + final_embeddings = [v for p in zip(text_segments, image_embeddings) for v in p] + final_embeddings += [inputs_embeds[:, start_idx:]] + + # Create a final embedding of shape + # (1, num_image_patches*num_images + sequence_len, embed_dim) + return mx.concatenate(final_embeddings, axis=1) + + def __call__(self, input_ids: mx.array, pixel_values: mx.array = None, cache=None): + input_embddings = None + if pixel_values is not None: + input_embddings = self.get_input_embeddings(input_ids, pixel_values) + logits = self.language_model(input_ids, cache=cache, inputs_embeds=input_embddings) + return logits + + def sanitize(self, weights): + if self.config.vision_config: + weights = self.vision_tower.sanitize(weights) + else: + weights = {k: v for k, v in weights.items() if not k.startswith(('vision_tower', 'multi_modal_projector', 'vision_feature_layer', 'vision_feature_select_strategy'))} + weights = self.language_model.sanitize(weights) + return weights + + @property + def layers(self): + return self.language_model.model.layers + + @property + def head_dim(self): + return (self.language_model.model.head_dim or self.language_model.model.hidden_size // self.language_model.model.num_attention_heads) + + @property + def n_kv_heads(self): + return self.language_model.model.num_key_value_heads diff --git a/build/lib/exo/inference/mlx/models/qwen2.py b/build/lib/exo/inference/mlx/models/qwen2.py new file mode 100644 index 00000000..46b5ce78 --- /dev/null +++ b/build/lib/exo/inference/mlx/models/qwen2.py @@ -0,0 +1,128 @@ +from dataclasses import dataclass, field + +import mlx.core as mx +import mlx.nn as nn + +from mlx_lm.models.base import create_attention_mask +from mlx_lm.models.qwen2 import TransformerBlock, ModelArgs + +from ...shard import Shard +from .base import IdentityBlock + + +@dataclass +class ModelArgs(ModelArgs): + shard: Shard = field(default_factory=lambda: Shard("", 0, 0, 0)) + + def __post_init__(self): + super().__post_init__() # Ensure parent initializations are respected + + if isinstance(self.shard, Shard): + return + if not isinstance(self.shard, dict): + raise TypeError(f"Expected shard to be a Shard instance or a dict, got {type(self.shard)} instead") + + self.shard = Shard(**self.shard) + + +class Qwen2Model(nn.Module): + def __init__(self, args: ModelArgs): + super().__init__() + self.args = args + self.vocab_size = args.vocab_size + self.num_hidden_layers = args.num_hidden_layers + assert self.vocab_size > 0 + if self.args.shard.is_first_layer(): + self.embed_tokens = nn.Embedding(args.vocab_size, args.hidden_size) + self.layers = [] + for i in range(self.num_hidden_layers): + if self.args.shard.start_layer <= i <= self.args.shard.end_layer: + self.layers.append(TransformerBlock(args=args)) + else: + self.layers.append(IdentityBlock()) + if self.args.shard.is_last_layer(): + self.norm = nn.RMSNorm(args.hidden_size, eps=args.rms_norm_eps) + + def __call__( + self, + inputs: mx.array, + cache=None, + ): + if self.args.shard.is_first_layer(): + h = self.embed_tokens(inputs) + else: + h = inputs + + mask = None + if h.shape[1] > 1: + mask = create_attention_mask(h, cache) + + if cache is None: + cache = [None]*len(self.layers) + + for layer, c in zip(self.layers, cache): + h = layer(h, mask, c) + + if self.args.shard.is_last_layer(): + h = self.norm(h) + return h + + +class Model(nn.Module): + def __init__(self, args: ModelArgs): + super().__init__() + self.args = args + self.model_type = args.model_type + self.model = Qwen2Model(args) + if self.args.shard.is_last_layer(): + if not args.tie_word_embeddings: + self.lm_head = nn.Linear(args.hidden_size, args.vocab_size, bias=False) + + def __call__( + self, + inputs: mx.array, + cache=None, + ): + out = self.model(inputs, cache) + if self.args.shard.is_last_layer(): + if self.args.tie_word_embeddings: + out = self.model.embed_tokens.as_linear(out) + else: + out = self.lm_head(out) + return out + + def sanitize(self, weights): + shard_state_dict = {} + + for key, value in weights.items(): + if "self_attn.rotary_emb.inv_freq" in key: + continue + if key.startswith('model.layers.'): + layer_num = int(key.split('.')[2]) + if self.args.shard.start_layer <= layer_num <= self.args.shard.end_layer: + shard_state_dict[key] = value + elif self.args.shard.is_first_layer() and key.startswith('model.embed_tokens'): + shard_state_dict[key] = value + elif (self.args.shard.is_last_layer() and self.args.tie_word_embeddings) and key.startswith('model.embed_tokens'): + shard_state_dict[key] = value + elif (self.args.shard.is_last_layer() and not self.args.tie_word_embeddings) and key.startswith('lm_head'): + shard_state_dict[key] = value + elif self.args.shard.is_last_layer() and (key.startswith('model.norm')): + shard_state_dict[key] = value + + if self.args.tie_word_embeddings: + shard_state_dict.pop("lm_head.weight", None) + + return shard_state_dict + + @property + def layers(self): + return self.model.layers + + @property + def head_dim(self): + return self.args.hidden_size // self.args.num_attention_heads + + @property + def n_kv_heads(self): + return self.args.num_key_value_heads diff --git a/build/lib/exo/inference/mlx/sharded_inference_engine.py b/build/lib/exo/inference/mlx/sharded_inference_engine.py new file mode 100644 index 00000000..74a42212 --- /dev/null +++ b/build/lib/exo/inference/mlx/sharded_inference_engine.py @@ -0,0 +1,77 @@ +import numpy as np +import mlx.core as mx +import mlx.nn as nn +from mlx_lm.sample_utils import top_p_sampling +from ..inference_engine import InferenceEngine +from .stateful_model import StatefulModel +from .sharded_utils import load_shard +from ..shard import Shard +from typing import Dict, Optional, Tuple +from exo.download.shard_download import ShardDownloader +import asyncio +from concurrent.futures import ThreadPoolExecutor + +def sample_logits( + logits: mx.array, + temp: float = 0.0, + top_p: float = 1.0, + logit_bias: Optional[Dict[int, float]] = None +) -> Tuple[mx.array, float]: + if logit_bias: + indices = mx.array(list(logit_bias.keys())) + values = mx.array(list(logit_bias.values())) + logits[:, indices] += values + + if temp == 0: + token = mx.argmax(logits, axis=-1) + else: + if top_p > 0 and top_p < 1.0: + token = top_p_sampling(logits, top_p, temp) + else: + token = mx.random.categorical(logits*(1/temp)) + + return token + +class MLXDynamicShardInferenceEngine(InferenceEngine): + def __init__(self, shard_downloader: ShardDownloader): + self.shard = None + self.shard_downloader = shard_downloader + self.executor = ThreadPoolExecutor(max_workers=1) + + async def sample(self, x, temp: float = 0.0, top_p: float = 1.0) -> np.ndarray: + y = mx.array(x) + logits = y[:, -1, :] + out = np.array(sample_logits(logits, temp=temp, top_p=top_p), dtype=int) + return out + + async def encode(self, shard: Shard, prompt: str) -> np.ndarray: + await self.ensure_shard(shard) + tokens = await asyncio.get_running_loop().run_in_executor(self.executor, self.tokenizer.encode, prompt) + return np.array(tokens) + + async def decode(self, shard: Shard, tokens) -> str: + await self.ensure_shard(shard) + tokens = await asyncio.get_running_loop().run_in_executor(self.executor, self.tokenizer.decode, tokens) + return tokens + + async def infer_tensor(self, request_id: str, shard: Shard, input_data: np.ndarray, inference_state: Optional[dict] = None) -> np.ndarray: + await self.ensure_shard(shard) + output_data, inference_state = await asyncio.get_running_loop().run_in_executor(self.executor, self.model, mx.array(input_data), request_id, inference_state) + output_data = np.array(output_data) + return output_data, inference_state + + async def ensure_shard(self, shard: Shard): + if self.shard == shard: + return + + model_path = await self.shard_downloader.ensure_shard(shard, self.__class__.__name__) + + if self.shard != shard: + loop = asyncio.get_running_loop() + + def load_shard_wrapper(): + return asyncio.run(load_shard(model_path, shard)) + + model_shard, self.tokenizer = await loop.run_in_executor(self.executor, load_shard_wrapper) + self.shard = shard + self.model = await loop.run_in_executor(self.executor, StatefulModel, model_shard) diff --git a/build/lib/exo/inference/mlx/sharded_utils.py b/build/lib/exo/inference/mlx/sharded_utils.py new file mode 100644 index 00000000..2f37e57a --- /dev/null +++ b/build/lib/exo/inference/mlx/sharded_utils.py @@ -0,0 +1,256 @@ +# Adapted from https://github.com/ml-explore/mlx-examples/blob/main/llms/mlx_lm/utils.py + +import glob +import importlib +import json +import logging +import asyncio +import aiohttp +from functools import partial +from pathlib import Path +from typing import Optional, Tuple, Union, List, Callable +from PIL import Image +from io import BytesIO +import base64 +import traceback + +import mlx.core as mx +import mlx.nn as nn +from transformers import AutoProcessor + +from mlx_lm.tokenizer_utils import load_tokenizer, TokenizerWrapper + +from exo import DEBUG +from exo.inference.tokenizers import resolve_tokenizer +from ..shard import Shard + + +class ModelNotFoundError(Exception): + def __init__(self, message): + self.message = message + super().__init__(self.message) + + +MODEL_REMAPPING = { + "mistral": "llama", # mistral is compatible with llama + "phi-msft": "phixtral", +} + + +def _get_classes(config: dict): + """ + Retrieve the model and model args classes based on the configuration. + + Args: + config (dict): The model configuration. + + Returns: + A tuple containing the Model class and the ModelArgs class. + """ + model_type = config["model_type"] + model_type = MODEL_REMAPPING.get(model_type, model_type) + try: + arch = importlib.import_module(f"exo.inference.mlx.models.{model_type}") + except ImportError: + msg = f"Model type {model_type} not supported." + logging.error(msg) + traceback.print_exc() + raise ValueError(msg) + + return arch.Model, arch.ModelArgs + + +def load_config(model_path: Path) -> dict: + try: + config_path = model_path / "config.json" + if config_path.exists(): + with open(config_path, "r") as f: + config = json.load(f) + return config + + model_index_path = model_path / "model_index.json" + if model_index_path.exists(): + config = load_model_index(model_path, model_index_path) + return config + except FileNotFoundError: + logging.error(f"Config file not found in {model_path}") + raise + return config + +def load_model_shard( + model_path: Path, + shard: Shard, + lazy: bool = False, + model_config: dict = {}, +) -> nn.Module: + """ + Load and initialize the model from a given path. + + Args: + model_path (Path): The path to load the model from. + lazy (bool): If False eval the model parameters to make sure they are + loaded in memory before returning, otherwise they will be loaded + when needed. Default: ``False`` + model_config(dict, optional): Configuration parameters for the model. + Defaults to an empty dictionary. + + Returns: + nn.Module: The loaded and initialized model. + + Raises: + FileNotFoundError: If the weight files (.safetensors) are not found. + ValueError: If the model class or args class are not found or cannot be instantiated. + """ + config = load_config(model_path) + config.update(model_config) + + # TODO hack + config["shard"] = { + "model_id": model_path.name, + "start_layer": shard.start_layer, + "end_layer": shard.end_layer, + "n_layers": shard.n_layers, + } + + weight_files = glob.glob(str(model_path/"model*.safetensors")) + + if not weight_files: + # Try weight for back-compat + weight_files = glob.glob(str(model_path/"weight*.safetensors")) + + model_class, model_args_class = _get_classes(config=config) + + class ShardedModel(model_class): + def __init__(self, args): + super().__init__(args) + self.shard = Shard(args.shard.model_id, args.shard.start_layer, args.shard.end_layer, args.shard.n_layers) + + def __call__(self, x, *args, **kwargs): + y = super().__call__(x, *args, **kwargs) + return y + + model_args = model_args_class.from_dict(config) + model = ShardedModel(model_args) + + if config.get("model_index", False): + model.load() + return model + + if not weight_files: + logging.error(f"No safetensors found in {model_path}") + raise FileNotFoundError(f"No safetensors found in {model_path}") + + weights = {} + for wf in sorted(weight_files): + if DEBUG >= 8: + layer_nums = set() + for k in mx.load(wf): + if k.startswith("model.layers."): + layer_num = int(k.split(".")[2]) + layer_nums.add(layer_num) + if k.startswith("language_model.model.layers."): + layer_num = int(k.split(".")[3]) + layer_nums.add(layer_num) + print(f"\"{wf.split('/')[-1]}\": {sorted(layer_nums)},") + + weights.update(mx.load(wf)) + + + + if hasattr(model, "sanitize"): + weights = model.sanitize(weights) + + if (quantization := config.get("quantization", None)) is not None: + # Handle legacy models which may not have everything quantized + def class_predicate(p, m): + if not hasattr(m, "to_quantized"): + return False + return f"{p}.scales" in weights + + nn.quantize( + model, + **quantization, + class_predicate=class_predicate, + ) + + model.load_weights(list(weights.items()), strict=True) + + if not lazy: + mx.eval(model.parameters()) + + model.eval() + return model + +async def load_shard( + model_path: str, + shard: Shard, + tokenizer_config={}, + model_config={}, + adapter_path: Optional[str] = None, + lazy: bool = False, +) -> Tuple[nn.Module, TokenizerWrapper]: + model = load_model_shard(model_path, shard, lazy, model_config) + + # TODO: figure out a generic solution + if model.model_type == "llava": + processor = AutoProcessor.from_pretrained(model_path) + processor.eos_token_id = processor.tokenizer.eos_token_id + processor.encode = processor.tokenizer.encode + return model, processor + elif hasattr(model, "tokenizer"): + tokenizer = model.tokenizer + return model, tokenizer + else: + tokenizer = await resolve_tokenizer(model_path) + return model, tokenizer + + +async def get_image_from_str(_image_str: str): + image_str = _image_str.strip() + + if image_str.startswith("http"): + async with aiohttp.ClientSession() as session: + async with session.get(image_str, timeout=10) as response: + content = await response.read() + return Image.open(BytesIO(content)).convert("RGB") + elif image_str.startswith("data:image/"): + # Extract the image format and base64 data + format_prefix, base64_data = image_str.split(";base64,") + image_format = format_prefix.split("/")[1].lower() + if DEBUG >= 2: print(f"{image_str=} {image_format=}") + imgdata = base64.b64decode(base64_data) + img = Image.open(BytesIO(imgdata)) + + # Convert to RGB if not already + if img.mode != "RGB": + img = img.convert("RGB") + + return img + else: + raise ValueError("Invalid image_str format. Must be a URL or a base64 encoded image.") + +# loading a combined config for all models in the index +def load_model_index(model_path: Path, model_index_path: Path): + models_config = {} + with open(model_index_path, "r") as f: + model_index = json.load(f) + models_config["model_index"] = True + models_config["model_type"] = model_index["_class_name"] + models_config["models"] = {} + for model in model_index.keys(): + model_config_path = glob.glob(str(model_path / model / "*config.json")) + if len(model_config_path)>0: + with open(model_config_path[0], "r") as f: + model_config = { } + model_config["model_type"] = model + model_config["config"] = json.load(f) + model_config["path"] = model_path / model + if model_config["path"]/"*model.safetensors": + model_config["config"].update({"weight_files": list(glob.glob(str(model_config["path"]/"*model.safetensors")))}) + model_config["path"] = str(model_path / model) + m = {} + m[model] = model_config + models_config.update(m) + models_config = json.dumps(models_config) + models_config = json.loads(models_config) + return models_config diff --git a/build/lib/exo/inference/mlx/stateful_model.py b/build/lib/exo/inference/mlx/stateful_model.py new file mode 100644 index 00000000..79e9baeb --- /dev/null +++ b/build/lib/exo/inference/mlx/stateful_model.py @@ -0,0 +1,45 @@ +from typing import Dict, Tuple, Optional +from collections import OrderedDict + +import mlx.core as mx +import mlx.nn as nn +from mlx_lm.models.cache import make_prompt_cache + +from ..shard import Shard + +class StatefulModel(nn.Module): + def __init__(self, model, max_kv_size: int = 1024, max_caches: int = 2): + super().__init__() + self.model = model + self.max_kv_size = max_kv_size + self.max_caches = max_caches + self.caches = OrderedDict() + + def init_cache(self, request_id: str): + kv_heads = ([self.model.n_kv_heads]*len(self.model.layers) if isinstance(self.model.n_kv_heads, int) else self.model.n_kv_heads) + # if self.max_kv_size is not None: + # cache = [RotatingKVCache(self.model.head_dim, n, max_size=self.max_kv_size, keep=4) for n in kv_heads] + # cache = [KVCache(self.model.head_dim, n) for n in kv_heads] + # else: + # cache = [KVCache(self.model.head_dim, n) for n in kv_heads] + cache = make_prompt_cache(self.model) + + if len(self.caches) >= self.max_caches: + self.caches.popitem(last=False) + + self.caches[request_id] = cache + + def __call__(self, x, request_id: str, inference_state: Optional[dict] = None): + if self.model.model_type !='StableDiffusionPipeline': + if request_id not in self.caches: + self.init_cache(request_id) + else: + self.caches.move_to_end(request_id) + + cache = self.caches[request_id] + + y = self.model(x, cache=cache) + else: + y, inference_state = self.model(x, **inference_state) + return y, inference_state + diff --git a/build/lib/exo/inference/mlx/test_sharded_llama.py b/build/lib/exo/inference/mlx/test_sharded_llama.py new file mode 100644 index 00000000..f98f9954 --- /dev/null +++ b/build/lib/exo/inference/mlx/test_sharded_llama.py @@ -0,0 +1,40 @@ +import mlx.core as mx +from exo.inference.mlx.stateful_model import StatefulModel +from exo.inference.mlx.sharded_utils import load_shard +from exo.inference.shard import Shard + +# 79, 80 for Llama-3-70B +shard_full = Shard("llama", 0, 31, 32) +shard1 = Shard("llama", 0, 12, 32) +shard2 = Shard("llama", 13, 31, 32) + +full_model_shard, full_tokenizer = load_shard("mlx-community/Meta-Llama-3-8B-Instruct-4bit", shard=shard_full) +model_shard1, tokenizer1 = load_shard("mlx-community/Meta-Llama-3-8B-Instruct-4bit", shard=shard1) +model_shard2, tokenizer2 = load_shard("mlx-community/Meta-Llama-3-8B-Instruct-4bit", shard=shard2) + +full = StatefulModel(shard_full, full_model_shard) +m1 = StatefulModel(shard1, model_shard1) +m2 = StatefulModel(shard2, model_shard2) + +prompt = "write a beautiful haiku about a utopia where people own their AI with edge intelligence:" +prompt_tokens = mx.array(full_tokenizer.encode(prompt)) +max_tokens = 50 + +resp = prompt_tokens +full_generated_tokens = [] +for _ in range(max_tokens): + resp = full.step(resp) + full_generated_tokens.append(resp.item()) + +print("full response: ", full_tokenizer.decode(full_generated_tokens)) + +sharded_generated_tokens = [] +sharded_resp = prompt_tokens +for _ in range(max_tokens): + resp1 = m1.step(sharded_resp) + sharded_resp = m2.step(resp1) + sharded_generated_tokens.append(sharded_resp.item()) + +print("sharded response: ", tokenizer1.decode(sharded_generated_tokens)) + +assert tokenizer1.decode(full_generated_tokens) == tokenizer1.decode(sharded_generated_tokens) diff --git a/build/lib/exo/inference/mlx/test_sharded_llava.py b/build/lib/exo/inference/mlx/test_sharded_llava.py new file mode 100644 index 00000000..53cd90c1 --- /dev/null +++ b/build/lib/exo/inference/mlx/test_sharded_llava.py @@ -0,0 +1,64 @@ +import codecs +import asyncio +import requests +from PIL import Image +from io import BytesIO + +import mlx.core as mx +from mlx_lm.models.cache import KVCache + +from exo.inference.mlx.stateful_model import StatefulModel +from exo.inference.mlx.sharded_utils import load_shard +from exo.inference.shard import Shard + +shard_full = Shard("llava", 0, 31, 32) +shard1 = Shard("llava", 0, 12, 32) +shard2 = Shard("llava", 13, 31, 32) + +model_path = "llava-hf/llava-1.5-7b-hf" + +full_model_shard, full_processor = asyncio.run(load_shard(model_path, shard=shard_full)) +model_shard1, processor1 = asyncio.run(load_shard(model_path, shard=shard1)) +model_shard2, processor2 = asyncio.run(load_shard(model_path, shard=shard2)) + +full = StatefulShardedModel(shard_full, full_model_shard) +m1 = StatefulShardedModel(shard1, model_shard1) +m2 = StatefulShardedModel(shard2, model_shard2) + +PROMPT = "USER: \nWhat are these?\nASSISTANT:" +IMAGE_FILE = "http://images.cocodataset.org/val2017/000000039769.jpg" +response = requests.get(IMAGE_FILE) +img = Image.open(BytesIO(response.content)) +prompt = codecs.decode(PROMPT, "unicode_escape") +inputs = full_processor(prompt, img, return_tensors="np") +pixel_values = mx.array(inputs["pixel_values"]) +input_ids = mx.array(inputs["input_ids"]) + +print(prompt) +y = full.step("full", input_ids, pixel_values, temp=0) +full_generated_tokens = [y.item()] + +for _ in range(13): + y = full.step("full", y, temp=0) + full_generated_tokens.append(y.item()) + +full_response = full_processor.tokenizer.decode(full_generated_tokens) +print("full response:", full_response) + +inputs = processor1(prompt, img, return_tensors="np") +pixel_values = mx.array(inputs["pixel_values"]) +input_ids = mx.array(inputs["input_ids"]) + +y = m1.step("shard", input_ids, pixel_values, temp=0) +y = m2.step("shard", y, temp=0) +full_generated_tokens = [y.item()] + +for _ in range(13): + y = m1.step("shard", y, temp=0) + y = m2.step("shard", y, temp=0) + full_generated_tokens.append(y.item()) + +sharded_response = processor2.tokenizer.decode(full_generated_tokens) +print("sharded response:", sharded_response) + +assert full_response == sharded_response diff --git a/build/lib/exo/inference/mlx/test_sharded_model.py b/build/lib/exo/inference/mlx/test_sharded_model.py new file mode 100644 index 00000000..c9743d07 --- /dev/null +++ b/build/lib/exo/inference/mlx/test_sharded_model.py @@ -0,0 +1,52 @@ +from exo.inference.shard import Shard +import mlx.core as mx +import mlx.nn as nn +from typing import Optional +import numpy as np + + +class DummyModel(nn.Module): + def __init__(self, shard: Optional[Shard] = None): + self.shard = shard + self.layers = [ + nn.Linear(8, 128), + nn.Linear(128, 128), + nn.Linear(128, 128), + nn.Linear(128, 128), + nn.Linear(128, 8), + ] + + self.n_kv_heads = 4 + self.head_dim = 4 + + def __call__(self, x, cache=None): + if self.shard: + for layer in self.layers[self.shard.start_layer:self.shard.end_layer + 1]: + x = layer(x) + if self.shard.is_last_layer(): + x = x.reshape((1, 2, 4)) + else: + for layer in self.layers: + x = layer(x) + x = x.reshape((1, 2, 4)) + + return x + + +model = DummyModel() +model.save_weights("./test_weights.npz") +n_layers = 5 +shard1 = Shard("test", 0, n_layers // 2, n_layers) +sharded_model1 = DummyModel(shard1) +shard2 = Shard("test", n_layers//2 + 1, n_layers - 1, n_layers) +sharded_model2 = DummyModel(shard2) + +model.load_weights("./test_weights.npz") +sharded_model1.load_weights("./test_weights.npz") +sharded_model2.load_weights("./test_weights.npz") + +fullresp = model(mx.array([1, 2, 3, 4, 5, 6, 7, 8])) +resp1 = sharded_model1(mx.array([1, 2, 3, 4, 5, 6, 7, 8])) +resp2 = sharded_model2(resp1) + +assert np.all(np.array(fullresp) == np.array(resp2)) diff --git a/build/lib/exo/inference/shard.py b/build/lib/exo/inference/shard.py new file mode 100644 index 00000000..21b662f6 --- /dev/null +++ b/build/lib/exo/inference/shard.py @@ -0,0 +1,39 @@ +from dataclasses import dataclass, field + + +@dataclass(frozen=True) +class Shard: + model_id: str + start_layer: int + end_layer: int + n_layers: int + + def __hash__(self): + return hash((self.model_id, self.start_layer, self.end_layer, self.n_layers)) + + def is_first_layer(self) -> bool: + return self.start_layer == 0 + + def is_last_layer(self) -> bool: + return self.end_layer == self.n_layers - 1 + + def get_layer_count(self) -> int: + return self.end_layer - self.start_layer + 1 + + def to_dict(self) -> dict: + return { + "model_id": self.model_id, + "start_layer": self.start_layer, + "end_layer": self.end_layer, + "n_layers": self.n_layers, + } + + def from_dict(data: dict) -> 'Shard': + return Shard(**data) + + def overlaps(self, other: 'Shard') -> bool: + return shards_overlap(self, other) + + +def shards_overlap(shard1: Shard, shard2: Shard) -> bool: + return (shard1.model_id == shard2.model_id and max(shard1.start_layer, shard2.start_layer) <= min(shard1.end_layer, shard2.end_layer)) diff --git a/build/lib/exo/inference/test_dummy_inference_engine.py b/build/lib/exo/inference/test_dummy_inference_engine.py new file mode 100644 index 00000000..cfd33df6 --- /dev/null +++ b/build/lib/exo/inference/test_dummy_inference_engine.py @@ -0,0 +1,53 @@ +import pytest +import json +import numpy as np +from exo.inference.dummy_inference_engine import DummyInferenceEngine +from exo.inference.shard import Shard + + +class MockShardDownloader: + async def ensure_shard(self, shard): + pass + + +@pytest.mark.asyncio +async def test_dummy_inference_specific(): + engine = DummyInferenceEngine(MockShardDownloader()) + test_shard = Shard(model_id="test_model", start_layer=0, end_layer=1, n_layers=1) + test_prompt = "This is a test prompt" + + result = await engine.infer_prompt("test_request", test_shard, test_prompt) + + print(f"Inference result shape: {result.shape}") + + assert result.shape[0] == 1, "Result should be a 2D array with first dimension 1" + + +@pytest.mark.asyncio +async def test_dummy_inference_engine(): + # Initialize the DummyInferenceEngine + engine = DummyInferenceEngine(MockShardDownloader()) + + # Create a test shard + shard = Shard(model_id="test_model", start_layer=0, end_layer=1, n_layers=1) + + # Test infer_prompt + output = await engine.infer_prompt("test_id", shard, "Test prompt") + + assert isinstance(output, np.ndarray), "Output should be a numpy array" + assert output.ndim == 2, "Output should be 2-dimensional" + + # Test infer_tensor + input_tensor = np.array([[1, 2, 3]]) + output = await engine.infer_tensor("test_id", shard, input_tensor) + + assert isinstance(output, np.ndarray), "Output should be a numpy array" + assert output.ndim == 2, "Output should be 2-dimensional" + + print("All tests passed!") + + +if __name__ == "__main__": + import asyncio + asyncio.run(test_dummy_inference_engine()) + asyncio.run(test_dummy_inference_specific()) diff --git a/build/lib/exo/inference/test_inference_engine.py b/build/lib/exo/inference/test_inference_engine.py new file mode 100644 index 00000000..db69aebf --- /dev/null +++ b/build/lib/exo/inference/test_inference_engine.py @@ -0,0 +1,56 @@ +from exo.inference.mlx.sharded_inference_engine import MLXDynamicShardInferenceEngine +from exo.download.hf.hf_shard_download import HFShardDownloader +from exo.inference.inference_engine import InferenceEngine +from exo.inference.shard import Shard +from exo.helpers import DEBUG +import os +import asyncio +import numpy as np + + +# An inference engine should work the same for any number of Shards, as long as the Shards are continuous. +async def test_inference_engine(inference_engine_1: InferenceEngine, inference_engine_2: InferenceEngine, model_id: str, n_layers: int): + prompt = "In a single word only, what is the last name of the current president of the USA?" + resp_full = await inference_engine_1.infer_prompt("A", shard=Shard(model_id=model_id, start_layer=0, end_layer=n_layers - 1, n_layers=n_layers), prompt=prompt) + token_full = await inference_engine_1.sample(resp_full) + token_full = token_full.reshape(1, -1) + next_resp_full = await inference_engine_1.infer_tensor( + "A", + shard=Shard(model_id=model_id, start_layer=0, end_layer=n_layers - 1, n_layers=n_layers), + input_data=token_full, + ) + + pp = n_layers // 2 + resp1 = await inference_engine_1.infer_prompt("B", shard=Shard(model_id=model_id, start_layer=0, end_layer=pp, n_layers=n_layers), prompt=prompt) + resp2 = await inference_engine_2.infer_tensor( + "B", + shard=Shard(model_id=model_id, start_layer=pp + 1, end_layer=n_layers - 1, n_layers=n_layers), + input_data=resp1, + ) + tokens2 = await inference_engine_1.sample(resp2) + tokens2 = tokens2.reshape(1, -1) + resp3 = await inference_engine_1.infer_tensor( + "B", + shard=Shard(model_id=model_id, start_layer=0, end_layer=pp, n_layers=n_layers), + input_data=tokens2, + ) + resp4 = await inference_engine_2.infer_tensor( + "B", + shard=Shard(model_id=model_id, start_layer=pp + 1, end_layer=n_layers - 1, n_layers=n_layers), + input_data=resp3, + ) + + assert np.array_equal(resp_full, resp2) + assert np.array_equal(next_resp_full, resp4) + + +asyncio.run(test_inference_engine(MLXDynamicShardInferenceEngine(HFShardDownloader()), MLXDynamicShardInferenceEngine(HFShardDownloader()), "llama-3.2-1b", 16)) + +if os.getenv("RUN_TINYGRAD", default="0") == "1": + import tinygrad + import os + from exo.inference.tinygrad.inference import TinygradDynamicShardInferenceEngine + tinygrad.helpers.DEBUG.value = int(os.getenv("TINYGRAD_DEBUG", default="0")) + asyncio.run( + test_inference_engine(TinygradDynamicShardInferenceEngine(HFShardDownloader()), TinygradDynamicShardInferenceEngine(HFShardDownloader()), "llama-3-8b", 32) + ) diff --git a/build/lib/exo/inference/tinygrad/__init__.py b/build/lib/exo/inference/tinygrad/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/inference/tinygrad/inference.py b/build/lib/exo/inference/tinygrad/inference.py new file mode 100644 index 00000000..afa9c5df --- /dev/null +++ b/build/lib/exo/inference/tinygrad/inference.py @@ -0,0 +1,99 @@ +from pathlib import Path +import json +import os +from exo.inference.tinygrad.models.llama import Transformer, convert_from_huggingface, fix_bf16, sample_logits +from exo.inference.shard import Shard +from exo.inference.tokenizers import resolve_tokenizer +from tinygrad.nn.state import load_state_dict +from tinygrad import Tensor, nn, Context +from exo.inference.inference_engine import InferenceEngine +import numpy as np +from exo.inference.tinygrad.tinygrad_helpers import concat_weights, load +from exo.download.shard_download import ShardDownloader +from concurrent.futures import ThreadPoolExecutor +from .stateful_model import StatefulModel +import asyncio + +Tensor.no_grad = True +# default settings +TEMPERATURE = int(os.getenv("TEMPERATURE", 0.85)) +TOP_K = 25 +TOP_P = 0.9 +ALPHA_F = 0.1 +ALPHA_P = 0.0 +MODEL_PARAMS = { + "1B": { + "args": { + "dim": 2048, "n_heads": 32, "n_kv_heads": 8, "n_layers": 16, "norm_eps": 1e-5, "rope_theta": 500000, "vocab_size": 128256, "hidden_dim": 8192, + "rope_scaling": {"factor": 32.0, "high_freq_factor": 4.0, "low_freq_factor": 1.0, "original_max_position_embeddings": 8192, "rope_type": "llama3"}, "tie_word_embeddings": True + }, "files": 1 + }, "3B": { + "args": { + "dim": 3072, "n_heads": 24, "n_kv_heads": 8, "n_layers": 28, "norm_eps": 1e-5, "rope_theta": 500000, "vocab_size": 128256, "hidden_dim": 8192, + "rope_scaling": {"factor": 32.0, "high_freq_factor": 4.0, "low_freq_factor": 1.0, "original_max_position_embeddings": 8192, "rope_type": "llama3"}, "tie_word_embeddings": True + }, "files": 1 + }, "8B": {"args": {"dim": 4096, "n_heads": 32, "n_kv_heads": 8, "n_layers": 32, "norm_eps": 1e-5, "rope_theta": 500000, "vocab_size": 128256, "hidden_dim": 14336}, "files": 1}, + "70B": {"args": {"dim": 8192, "n_heads": 64, "n_kv_heads": 8, "n_layers": 80, "norm_eps": 1e-5, "rope_theta": 500000, "vocab_size": 128256, "hidden_dim": 28672}, "files": 8} +} + + +def build_transformer(model_path: Path, shard: Shard, model_size="8B", device=None): + # build model + linear = nn.Linear + model = Transformer(**MODEL_PARAMS[model_size]["args"], linear=linear, max_context=8192, jit=True, shard=shard) + + # load weights + if model_path.is_dir(): + if (model_path/"model.safetensors.index.json").exists(): weights = load(str(model_path/"model.safetensors.index.json"), shard) + elif (model_path/"model.safetensors").exists(): weights = load(str(model_path/"model.safetensors"), shard) + else: weights = concat_weights([load(str(model_path/f"consolidated.{i:02d}.pth"), shard) for i in range(MODEL_PARAMS[model_size]["files"])], device[0] if isinstance(device, tuple) else device) + else: + weights = load(str(model_path), shard) + weights = convert_from_huggingface(weights, model, MODEL_PARAMS[model_size]["args"]["n_heads"], MODEL_PARAMS[model_size]["args"]["n_kv_heads"]) + weights = fix_bf16(weights) + + with Context(BEAM=0): + # replace weights in model + load_state_dict(model, weights, strict=False, consume=False) # consume=True + return model + +class TinygradDynamicShardInferenceEngine(InferenceEngine): + def __init__(self, shard_downloader: ShardDownloader): + self.shard = None + self.shard_downloader = shard_downloader + self.executor = ThreadPoolExecutor(max_workers=1) + + async def sample(self, x: np.ndarray, temp=TEMPERATURE, top_p: float = 0.0) -> np.ndarray: + logits = x[:, -1, :] + def sample_wrapper(): + return sample_logits(Tensor(logits).flatten(), temp, 0, 0.8, top_p, 0.0).realize().numpy().astype(int) + return await asyncio.get_running_loop().run_in_executor(self.executor, sample_wrapper) + + async def encode(self, shard: Shard, prompt: str) -> np.ndarray: + await self.ensure_shard(shard) + tokens = await asyncio.get_running_loop().run_in_executor(self.executor, self.tokenizer.encode, prompt) + return await asyncio.get_running_loop().run_in_executor(self.executor, np.array, tokens) + + async def decode(self, shard: Shard, tokens) -> str: + await self.ensure_shard(shard) + return await asyncio.get_running_loop().run_in_executor(self.executor, self.tokenizer.decode, tokens) + + async def infer_tensor(self, request_id: str, shard: Shard, input_data: np.ndarray) -> np.ndarray: + await self.ensure_shard(shard) + return await asyncio.get_running_loop().run_in_executor(self.executor, lambda: self.model(Tensor(input_data), request_id).realize().numpy()) + + async def ensure_shard(self, shard: Shard): + if self.shard == shard: + return + + model_path = await self.shard_downloader.ensure_shard(shard, self.__class__.__name__) + + if self.shard != shard: + loop = asyncio.get_running_loop() + parameters = "1B" if "1b" in shard.model_id.lower() else "3B" if "3b" in shard.model_id.lower() else "8B" if "8b" in shard.model_id.lower() else "70B" + model_shard = await loop.run_in_executor(self.executor, build_transformer, model_path, shard, parameters) + + tokenizer_path = str((model_path if model_path.is_dir() else model_path.parent)) + self.tokenizer = await resolve_tokenizer(tokenizer_path) + self.shard = shard + self.model = await loop.run_in_executor(self.executor, StatefulModel, model_shard) diff --git a/build/lib/exo/inference/tinygrad/models/__init__.py b/build/lib/exo/inference/tinygrad/models/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/inference/tinygrad/models/llama.py b/build/lib/exo/inference/tinygrad/models/llama.py new file mode 100644 index 00000000..52ed3072 --- /dev/null +++ b/build/lib/exo/inference/tinygrad/models/llama.py @@ -0,0 +1,282 @@ +from typing import Tuple, Union, Optional, Dict, Any, List +from tinygrad import Tensor, Variable, TinyJit, dtypes, nn, Device +from tinygrad.helpers import getenv +from collections import OrderedDict + + +# https://github.com/facebookresearch/llama/blob/1076b9c51c77ad06e9d7ba8a4c6df775741732bd/llama/model.py#L47 +def precompute_freqs_cis(dim: int, end: int, theta: float = 10000.0, dtype=dtypes.half, rope_scaling: Optional[Dict[str, float]] = None) -> Tensor: + freqs = 1.0/(theta**(Tensor.arange(0, dim, 2)[:(dim // 2)]/dim)) + + if rope_scaling: + factor = rope_scaling.get('factor', 1.0) + low_freq_factor = rope_scaling.get('low_freq_factor', 1.0) + high_freq_factor = rope_scaling.get('high_freq_factor', 1.0) + original_max_pos_emb = rope_scaling.get('original_max_position_embeddings', end) + + freqs[:dim // 4] *= low_freq_factor + freqs[dim // 4:] = freqs[dim // 4:].contiguous()*high_freq_factor + freqs *= (original_max_pos_emb/end)**(1.0/factor) + + freqs = Tensor.arange(end).unsqueeze(dim=1)*freqs.unsqueeze(dim=0) + # TODO: move dtype outside this + return Tensor.stack(freqs.cos().cast(dtype), freqs.sin().cast(dtype), dim=-1).reshape(1, end, 1, dim // 2, 2) + + +# (a+i*b) * (c+i*d) = (ac-bd) + i*(ad+bc) +def complex_mult(A, c, d): + a, b = A[..., 0:1], A[..., 1:2] + ro = a*c - b*d + co = a*d + b*c + return ro.cat(co, dim=-1) + + +def apply_rotary_emb(xq: Tensor, xk: Tensor, freqs_cis: Tensor) -> Tuple[Tensor, Tensor]: + assert freqs_cis.shape[1] == xq.shape[1] == xk.shape[1], f"freqs_cis shape mismatch {freqs_cis.shape} xq:{xq.shape} xk:{xk.shape}" + xq = xq.reshape(*xq.shape[0:-1], -1, 2) + xk = xk.reshape(*xk.shape[0:-1], -1, 2) + assert len(xq.shape) == len(xk.shape) == len(freqs_cis.shape) == 5 + c, d = freqs_cis[..., 0:1], freqs_cis[..., 1:2] + xq_out = complex_mult(xq, c, d) + xk_out = complex_mult(xk, c, d) + return xq_out.flatten(3), xk_out.flatten(3) + + +def repeat_kv(x: Tensor, n_rep: int) -> Tensor: + bs, seqlen, n_kv_heads, head_dim = x.shape + if n_rep == 1: return x + # NOTE: this is different from x.repeat((1, 1, n_rep, 1)) + return x.repeat((1, 1, 1, n_rep)).reshape(bs, seqlen, n_kv_heads*n_rep, head_dim) + +class Attention: + def __init__(self, dim, n_heads, n_kv_heads, max_context, linear=nn.Linear): + self.n_heads = n_heads + self.n_kv_heads = n_kv_heads if n_kv_heads is not None else n_heads # n_kv_heads != n_heads implies MQA [arxiv/2307.09288, A.2.1] + self.head_dim = dim // n_heads + self.n_rep = self.n_heads // self.n_kv_heads + self.max_context = max_context + + self.wq = linear(dim, self.n_heads*self.head_dim, bias=False) + self.wk = linear(dim, self.n_kv_heads*self.head_dim, bias=False) + self.wv = linear(dim, self.n_kv_heads*self.head_dim, bias=False) + self.wo = linear(self.n_heads*self.head_dim, dim, bias=False) + + def __call__(self, x: Tensor, start_pos: Union[Variable, int], freqs_cis: Tensor, mask: Optional[Tensor], cache: Optional[Tensor]=None) -> Tensor: + if getenv("WQKV"): + if not hasattr(self, 'wqkv'): self.wqkv = Tensor.cat(self.wq.weight, self.wk.weight, self.wv.weight) + xqkv = x @ self.wqkv.T + xq, xk, xv = xqkv.split([self.wq.weight.shape[0], self.wk.weight.shape[0], self.wv.weight.shape[0]], dim=2) + else: + xq, xk, xv = self.wq(x), self.wk(x), self.wv(x) + + xq = xq.reshape(xq.shape[0], xq.shape[1], self.n_heads, self.head_dim) + xk = xk.reshape(xk.shape[0], xk.shape[1], self.n_kv_heads, self.head_dim) + xv = xv.reshape(xv.shape[0], xv.shape[1], self.n_kv_heads, self.head_dim) + + xq, xk = apply_rotary_emb(xq, xk, freqs_cis) + bsz, seqlen, _, _ = xq.shape + + if cache is not None: + # update the cache + assert xk.dtype == xv.dtype == cache.dtype, f"{xk.dtype=}, {xv.dtype=}, {cache.dtype=}" + cache.shrink((None, None, (start_pos, start_pos + seqlen), None, None)).assign(Tensor.stack(xk, xv)).realize() + + keys = cache[0].shrink((None, (0, start_pos + seqlen), None, None)) if start_pos > 0 else xk + values = cache[1].shrink((None, (0, start_pos + seqlen), None, None)) if start_pos > 0 else xv + else: + keys = xk + values = xv + + keys, values = repeat_kv(keys, self.n_rep), repeat_kv(values, self.n_rep) + xq, keys, values = xq.transpose(1, 2), keys.transpose(1, 2), values.transpose(1, 2) + attn = xq.scaled_dot_product_attention(keys, values, mask).transpose(1, 2) + attn = attn.reshape(bsz, seqlen, -1) + return self.wo(attn) + + +class FeedForward: + def __init__(self, dim: int, hidden_dim: int, linear=nn.Linear): + self.w1 = linear(dim, hidden_dim, bias=False) + self.w2 = linear(hidden_dim, dim, bias=False) + self.w3 = linear(dim, hidden_dim, bias=False) # the gate in Gated Linear Unit + + def __call__(self, x: Tensor) -> Tensor: + return self.w2(self.w1(x).silu()*self.w3(x)) # SwiGLU [arxiv/2002.05202, eq (5)] + + +class TransformerBlock: + def __init__(self, dim: int, hidden_dim: int, n_heads: int, n_kv_heads: int, norm_eps: float, max_context: int, linear=nn.Linear, feed_forward=FeedForward): + self.attention = Attention(dim, n_heads, n_kv_heads, max_context, linear) + self.feed_forward = feed_forward(dim, hidden_dim, linear) + self.attention_norm = nn.RMSNorm(dim, norm_eps) + self.ffn_norm = nn.RMSNorm(dim, norm_eps) + + def __call__(self, x: Tensor, start_pos: Union[Variable, int], freqs_cis: Tensor, mask: Optional[Tensor], cache: Optional[Tensor]=None): + h = x + self.attention(self.attention_norm(x), start_pos, freqs_cis, mask, cache=cache) + return (h + self.feed_forward(self.ffn_norm(h))).contiguous() + + +# standard openai sampling +def sample_logits(logits: Tensor, temp: float, k: int, p: float, af: float, ap: float): + assert logits.ndim == 1, "only works on 1d tensors" + assert 0 <= p <= 1, "p must be between 0 and 1" + assert 0 <= k <= logits.numel(), "k must be between 0 and numel" + + # if temperature is very low just use argmax + if temp < 1e-6: return logits.argmax().reshape(1) + + # alpha sampling + if af or ap: + if not hasattr(sample, "alpha_counter"): + setattr(sample, "alpha_counter", Tensor.zeros_like(logits, dtype=dtypes.int32).contiguous()) + logits = logits - (sample.alpha_counter*af + (sample.alpha_counter > 0)*ap) + + # replace NaNs with -inf + logits = (logits != logits).where(-float("inf"), logits) + + # softmax + t = (logits/temp).softmax() + + counter, counter2 = Tensor.arange(t.numel(), device=logits.device).contiguous(), Tensor.arange(t.numel() - 1, -1, -1, device=logits.device).contiguous() + # top k + if k: + output, output_indices = Tensor.zeros(k, device=logits.device).contiguous(), Tensor.zeros(k, device=logits.device, dtype=dtypes.int32).contiguous() + for i in range(k): + t_argmax = (t.numel() - ((t == (t_max := t.max()))*counter2).max() - 1).cast(dtypes.default_int) + output = output + t_max.unsqueeze(0).pad(((i, k - i - 1),)) + output_indices = output_indices + t_argmax.unsqueeze(0).pad(((i, k - i - 1),)) + t = (counter == t_argmax).where(0, t) + + # approximate top p + # because we are already limited to top k elements we can do top p "without sorting" + output_cumsum = output[::-1]._cumsum()[::-1] + t.sum() + output = (output_cumsum >= (1 - p))*output + output_indices = (output_cumsum >= (1 - p))*output_indices + + # sample + output_idx = output.multinomial() + output_token = output_indices[output_idx] + else: + output_token = t.multinomial() + + # increase alpha counter + if af or ap: + sample.alpha_counter = (counter == output_token).where(sample.alpha_counter + 1, sample.alpha_counter) + + return output_token + + +from exo.inference.shard import Shard + + +class Transformer: + def __init__( + self, + dim: int, + hidden_dim: int, + n_heads: int, + n_layers: int, + norm_eps: float, + vocab_size, + shard: Shard = None, + linear=nn.Linear, + n_kv_heads=None, + rope_theta=10000, + max_context=1024, + jit=True, + feed_forward=FeedForward, + rope_scaling: Optional[Dict[str, float]] = None, + tie_word_embeddings=False, + ): + self.layers = [TransformerBlock(dim, hidden_dim, n_heads, n_kv_heads, norm_eps, max_context, linear, feed_forward=feed_forward) for _ in range(n_layers)] + self.norm = nn.RMSNorm(dim, norm_eps) + self.tok_embeddings = nn.Embedding(vocab_size, dim) + self.output = nn.Linear(dim, vocab_size, bias=False) + if tie_word_embeddings: + self.output.weight = self.tok_embeddings.weight + self.max_context = max_context + self.freqs_cis = precompute_freqs_cis(dim // n_heads, self.max_context*2, rope_theta, rope_scaling=rope_scaling).contiguous() + self.forward_jit = TinyJit(self.forward_base) if jit else None + self.shard = shard + + def forward_base(self, x: Tensor, start_pos: Union[Variable, int], cache: Optional[List[Tensor]] = None): + seqlen = x.shape[1] + freqs_cis = self.freqs_cis.shrink((None, (start_pos, start_pos + seqlen), None, None, None)) + mask = Tensor.full((1, 1, seqlen, start_pos + seqlen), float("-100000000"), dtype=x.dtype, device=x.device).triu(start_pos + 1).realize() if seqlen > 1 else None + + h = x + + if cache is None: + cache = [None for _ in range(self.shard.start_layer, self.shard.end_layer + 1)] + for i, c in zip(range(self.shard.start_layer, self.shard.end_layer + 1), cache): + layer = self.layers[i] + h = layer(h, start_pos, freqs_cis, mask, cache=c) + + if self.shard.is_last_layer(): + logits = self.output(self.norm(h)).float().realize() + return logits + else: + return h + + def embed(self, inputs: Tensor): + if self.shard.is_first_layer(): + h = self.tok_embeddings(inputs) + else: + h = inputs + return h + + def forward(self, x: Tensor, start_pos: int, cache: Optional[List[Tensor]] = None): + if x.shape[0:2] == (1, 1) and self.forward_jit is not None and start_pos != 0: + return self.forward_jit(x, Variable("start_pos", 1, self.max_context).bind(start_pos), cache=cache) + return self.forward_base(x, start_pos, cache=cache) + + def __call__(self, tokens: Tensor, start_pos: Variable, cache: Optional[List[Tensor]] = None): + # TODO: better way to handle the first call v.s. the rest? + h = self.embed(x) + return self.forward(h, start_pos, cache=cache) + + +# *** helpers *** + + +def convert_from_huggingface(weights: Dict[str, Tensor], model: Transformer, n_heads: int, n_kv_heads: int): + def permute(v: Tensor, n_heads: int): + return v.reshape(n_heads, 2, v.shape[0] // n_heads // 2, v.shape[1]).transpose(1, 2).reshape(*v.shape[:2]) + + keymap = { + "model.embed_tokens.weight": "tok_embeddings.weight", + **{f"model.layers.{l}.input_layernorm.weight": f"layers.{l}.attention_norm.weight" + for l in range(len(model.layers))}, + **{f"model.layers.{l}.self_attn.{x}_proj.weight": f"layers.{l}.attention.w{x}.weight" + for x in ["q", "k", "v", "o"] + for l in range(len(model.layers))}, + **{f"model.layers.{l}.post_attention_layernorm.weight": f"layers.{l}.ffn_norm.weight" + for l in range(len(model.layers))}, + **{f"model.layers.{l}.mlp.{x}_proj.weight": f"layers.{l}.feed_forward.w{y}.weight" + for x, y in {"gate": "1", "down": "2", "up": "3"}.items() + for l in range(len(model.layers))}, + "model.norm.weight": "norm.weight", + "lm_head.weight": "output.weight", + } + sd = {} + for k, v in weights.items(): + if ".rotary_emb." in k: continue + v = v.to(Device.DEFAULT) + if "model.layers" in k: + if "q_proj" in k: + v = permute(v, n_heads) + elif "k_proj" in k: + v = permute(v, n_kv_heads) + if k in keymap: + sd[keymap[k]] = v + else: + sd[k] = v + return sd + + +def fix_bf16(weights: Dict[Any, Tensor]): + if getenv("SUPPORT_BF16", 1): + # TODO: without casting to float16, 70B llama OOM on tinybox. + return {k: v.cast(dtypes.float16) if v.dtype == dtypes.bfloat16 else v for k, v in weights.items()} + # TODO: check if device supports bf16 + return {k: v.llvm_bf16_cast(dtypes.half).to(v.device) if v.dtype == dtypes.bfloat16 else v for k, v in weights.items()} diff --git a/build/lib/exo/inference/tinygrad/stateful_model.py b/build/lib/exo/inference/tinygrad/stateful_model.py new file mode 100644 index 00000000..e9178a38 --- /dev/null +++ b/build/lib/exo/inference/tinygrad/stateful_model.py @@ -0,0 +1,42 @@ +from tinygrad import Tensor, Variable +from collections import OrderedDict +from typing import List + +def create_kv_cache(x: Tensor, max_context: int, n_kv_heads: int, head_dim: int): + cache_kv = Tensor.zeros(2, x.shape[0], max_context, n_kv_heads, head_dim, dtype=x.dtype).contiguous().realize() + if isinstance(x.device, tuple): + # TODO: instead of specifying how to shard, it can follow how xk and xv are being sharded + cache_kv.shard_((x.device), axis=3 if getenv("SHARD_KVCACHE") else None).realize() + return cache_kv.realize() + +class ModelState: + cache: List[Tensor] + start: int + def __init__(self, cache: List[Tensor], start: int = 0): + self.cache = cache + self.start = start + +class StatefulModel: + def __init__(self, model, max_states: int = 2): + super().__init__() + self.model = model + self.max_states = max_states + self.states = OrderedDict() + + def init_cache(self, x: Tensor, request_id: str): + cache = [create_kv_cache(x, self.model.layers[i].attention.max_context, self.model.layers[i].attention.n_kv_heads, self.model.layers[i].attention.head_dim) for i in range(self.model.shard.start_layer, self.model.shard.end_layer + 1)] + if len(self.states) >= self.max_states: + self.states.popitem(last=False) + + self.states[request_id] = ModelState(cache) + + def __call__(self, x: Tensor, request_id: str): + h = self.model.embed(x) + if request_id not in self.states: + self.init_cache(h, request_id) + else: + self.states.move_to_end(request_id) + out = self.model.forward(h, self.states[request_id].start, cache=self.states[request_id].cache) + self.states[request_id].start += h.shape[1] + return out + diff --git a/build/lib/exo/inference/tinygrad/tinygrad_helpers.py b/build/lib/exo/inference/tinygrad/tinygrad_helpers.py new file mode 100644 index 00000000..a33b01ae --- /dev/null +++ b/build/lib/exo/inference/tinygrad/tinygrad_helpers.py @@ -0,0 +1,52 @@ +from tinygrad.nn.state import safe_load, torch_load +from tinygrad import Tensor +from pathlib import Path +import json +from typing import List +from exo.inference.shard import Shard +from exo.helpers import DEBUG +from exo.download.hf.hf_helpers import get_allow_patterns +from fnmatch import fnmatch +import re + + +# **** helper functions **** +def concat_weights(models, device=None): + def convert(name) -> Tensor: + disk_tensors: List[Tensor] = [model[name] for model in models] + if len(disk_tensors) == 1 or len(disk_tensors[0].shape) == 1: + return disk_tensors[0].to(device=device) + axis = 1 if name.endswith(".attention.wo.weight") or name.endswith(".feed_forward.w2.weight") else 0 + lazy_tensors = [data.to(device=device) for data in disk_tensors] + return lazy_tensors[0].cat(*lazy_tensors[1:], dim=axis) + + return {name: convert(name) for name in {name: None for model in models for name in model}} + + +def load(fn: str, shard: Shard): + if fn.endswith('.index.json'): + with open(fn) as fp: + weight_map = json.load(fp)['weight_map'] + parts = {} + filtered_weight_map = {} + allow_patterns = get_allow_patterns(weight_map, shard) + for k, n in weight_map.items(): + if allow_patterns is not None and not any(fnmatch(n, r) for r in allow_patterns): + continue + if k.startswith("model.layers."): + layer_num = int(k.split('.')[2]) + if layer_num < shard.start_layer or layer_num > shard.end_layer: + continue + + parts[n] = load(str(Path(fn).parent/Path(n).name), shard) + filtered_weight_map[k] = n + if DEBUG >= 2: print(f"Excluded model param keys for {shard=}: {sorted(set(weight_map.keys()) - set(filtered_weight_map.keys()))}") + return {k: parts[n][k] for k, n in filtered_weight_map.items()} + elif fn.endswith(".safetensors"): + weight_map = safe_load(fn) + for k in list(weight_map): + if (n := re.search(r"\.(\d+)\.", k)) and not (shard.start_layer <= int(n.group(1)) <= shard.end_layer): + del weight_map[k] + return weight_map + else: + return torch_load(fn) diff --git a/build/lib/exo/inference/tokenizers.py b/build/lib/exo/inference/tokenizers.py new file mode 100644 index 00000000..6b1439fc --- /dev/null +++ b/build/lib/exo/inference/tokenizers.py @@ -0,0 +1,64 @@ +import traceback +from aiofiles import os as aios +from os import PathLike +from pathlib import Path +from typing import Union +from transformers import AutoTokenizer, AutoProcessor +import numpy as np +from exo.download.hf.hf_helpers import get_local_snapshot_dir +from exo.helpers import DEBUG + + +class DummyTokenizer: + def __init__(self): + self.eos_token_id = 69 + self.vocab_size = 1000 + + def apply_chat_template(self, messages, tokenize=True, add_generation_prompt=True): + return "dummy_tokenized_prompt" + + def encode(self, text): + return np.array([1]) + + def decode(self, tokens): + return "dummy" * len(tokens) + + +async def resolve_tokenizer(model_id: str): + if model_id == "dummy": + return DummyTokenizer() + local_path = await get_local_snapshot_dir(model_id) + if DEBUG >= 2: print(f"Checking if local path exists to load tokenizer from local {local_path=}") + try: + if local_path and await aios.path.exists(local_path): + if DEBUG >= 2: print(f"Resolving tokenizer for {model_id=} from {local_path=}") + return await _resolve_tokenizer(local_path) + except: + if DEBUG >= 5: print(f"Local check for {local_path=} failed. Resolving tokenizer for {model_id=} normally...") + if DEBUG >= 5: traceback.print_exc() + return await _resolve_tokenizer(model_id) + + +async def _resolve_tokenizer(model_id_or_local_path: Union[str, PathLike]): + try: + if DEBUG >= 4: print(f"Trying AutoProcessor for {model_id_or_local_path}") + processor = AutoProcessor.from_pretrained(model_id_or_local_path, use_fast=True if "Mistral-Large" in f"{model_id_or_local_path}" else False, trust_remote_code=True) + if not hasattr(processor, 'eos_token_id'): + processor.eos_token_id = getattr(processor, 'tokenizer', getattr(processor, '_tokenizer', processor)).eos_token_id + if not hasattr(processor, 'encode'): + processor.encode = getattr(processor, 'tokenizer', getattr(processor, '_tokenizer', processor)).encode + if not hasattr(processor, 'decode'): + processor.decode = getattr(processor, 'tokenizer', getattr(processor, '_tokenizer', processor)).decode + return processor + except Exception as e: + if DEBUG >= 4: print(f"Failed to load processor for {model_id_or_local_path}. Error: {e}") + if DEBUG >= 4: print(traceback.format_exc()) + + try: + if DEBUG >= 4: print(f"Trying AutoTokenizer for {model_id_or_local_path}") + return AutoTokenizer.from_pretrained(model_id_or_local_path, trust_remote_code=True) + except Exception as e: + if DEBUG >= 4: print(f"Failed to load tokenizer for {model_id_or_local_path}. Falling back to tinygrad tokenizer. Error: {e}") + if DEBUG >= 4: print(traceback.format_exc()) + + raise ValueError(f"[TODO] Unsupported model: {model_id_or_local_path}") diff --git a/build/lib/exo/main.py b/build/lib/exo/main.py new file mode 100644 index 00000000..569fb289 --- /dev/null +++ b/build/lib/exo/main.py @@ -0,0 +1,274 @@ +import argparse +import asyncio +import atexit +import signal +import json +import logging +import platform +import os +import sys +import time +import traceback +import uuid +from exo.networking.manual.manual_discovery import ManualDiscovery +from exo.networking.manual.network_topology_config import NetworkTopology +from exo.orchestration.standard_node import StandardNode +from exo.networking.grpc.grpc_server import GRPCServer +from exo.networking.udp.udp_discovery import UDPDiscovery +from exo.networking.tailscale.tailscale_discovery import TailscaleDiscovery +from exo.networking.grpc.grpc_peer_handle import GRPCPeerHandle +from exo.topology.ring_memory_weighted_partitioning_strategy import RingMemoryWeightedPartitioningStrategy +from exo.api import ChatGPTAPI +from exo.download.shard_download import ShardDownloader, RepoProgressEvent, NoopShardDownloader +from exo.download.hf.hf_shard_download import HFShardDownloader +from exo.helpers import print_yellow_exo, find_available_port, DEBUG, get_system_info, get_or_create_node_id, get_all_ip_addresses, terminal_link, shutdown +from exo.inference.shard import Shard +from exo.inference.inference_engine import get_inference_engine, InferenceEngine +from exo.inference.tokenizers import resolve_tokenizer +from exo.orchestration.node import Node +from exo.models import build_base_shard, get_repo +from exo.viz.topology_viz import TopologyViz +from exo.download.hf.hf_helpers import has_hf_home_read_access, has_hf_home_write_access, get_hf_home, move_models_to_hf + +# parse args +parser = argparse.ArgumentParser(description="Initialize GRPC Discovery") +parser.add_argument("command", nargs="?", choices=["run"], help="Command to run") +parser.add_argument("model_name", nargs="?", help="Model name to run") +parser.add_argument("--default-model", type=str, default=None, help="Default model") +parser.add_argument("--node-id", type=str, default=None, help="Node ID") +parser.add_argument("--node-host", type=str, default="0.0.0.0", help="Node host") +parser.add_argument("--node-port", type=int, default=None, help="Node port") +parser.add_argument("--models-seed-dir", type=str, default=None, help="Model seed directory") +parser.add_argument("--listen-port", type=int, default=5678, help="Listening port for discovery") +parser.add_argument("--download-quick-check", action="store_true", help="Quick check local path for model shards download") +parser.add_argument("--max-parallel-downloads", type=int, default=4, help="Max parallel downloads for model shards download") +parser.add_argument("--prometheus-client-port", type=int, default=None, help="Prometheus client port") +parser.add_argument("--broadcast-port", type=int, default=5678, help="Broadcast port for discovery") +parser.add_argument("--discovery-module", type=str, choices=["udp", "tailscale", "manual"], default="udp", help="Discovery module to use") +parser.add_argument("--discovery-timeout", type=int, default=30, help="Discovery timeout in seconds") +parser.add_argument("--discovery-config-path", type=str, default=None, help="Path to discovery config json file") +parser.add_argument("--wait-for-peers", type=int, default=0, help="Number of peers to wait to connect to before starting") +parser.add_argument("--chatgpt-api-port", type=int, default=52415, help="ChatGPT API port") +parser.add_argument("--chatgpt-api-response-timeout", type=int, default=90, help="ChatGPT API response timeout in seconds") +parser.add_argument("--max-generate-tokens", type=int, default=10000, help="Max tokens to generate in each request") +parser.add_argument("--inference-engine", type=str, default=None, help="Inference engine to use (mlx, tinygrad, or dummy)") +parser.add_argument("--disable-tui", action=argparse.BooleanOptionalAction, help="Disable TUI") +parser.add_argument("--run-model", type=str, help="Specify a model to run directly") +parser.add_argument("--prompt", type=str, help="Prompt for the model when using --run-model", default="Who are you?") +parser.add_argument("--default-temp", type=float, help="Default token sampling temperature", default=0.0) +parser.add_argument("--tailscale-api-key", type=str, default=None, help="Tailscale API key") +parser.add_argument("--tailnet-name", type=str, default=None, help="Tailnet name") +parser.add_argument("--node-id-filter", type=str, default=None, help="Comma separated list of allowed node IDs (only for UDP and Tailscale discovery)") +args = parser.parse_args() +print(f"Selected inference engine: {args.inference_engine}") + +print_yellow_exo() + +system_info = get_system_info() +print(f"Detected system: {system_info}") + +shard_downloader: ShardDownloader = HFShardDownloader(quick_check=args.download_quick_check, + max_parallel_downloads=args.max_parallel_downloads) if args.inference_engine != "dummy" else NoopShardDownloader() +inference_engine_name = args.inference_engine or ("mlx" if system_info == "Apple Silicon Mac" else "tinygrad") +print(f"Inference engine name after selection: {inference_engine_name}") + +inference_engine = get_inference_engine(inference_engine_name, shard_downloader) +print(f"Using inference engine: {inference_engine.__class__.__name__} with shard downloader: {shard_downloader.__class__.__name__}") + +if args.node_port is None: + args.node_port = find_available_port(args.node_host) + if DEBUG >= 1: print(f"Using available port: {args.node_port}") + +args.node_id = args.node_id or get_or_create_node_id() +chatgpt_api_endpoints = [f"http://{ip}:{args.chatgpt_api_port}/v1/chat/completions" for ip in get_all_ip_addresses()] +web_chat_urls = [f"http://{ip}:{args.chatgpt_api_port}" for ip in get_all_ip_addresses()] +if DEBUG >= 0: + print("Chat interface started:") + for web_chat_url in web_chat_urls: + print(f" - {terminal_link(web_chat_url)}") + print("ChatGPT API endpoint served at:") + for chatgpt_api_endpoint in chatgpt_api_endpoints: + print(f" - {terminal_link(chatgpt_api_endpoint)}") + +# Convert node-id-filter to list if provided +allowed_node_ids = args.node_id_filter.split(',') if args.node_id_filter else None + +if args.discovery_module == "udp": + discovery = UDPDiscovery( + args.node_id, + args.node_port, + args.listen_port, + args.broadcast_port, + lambda peer_id, address, device_capabilities: GRPCPeerHandle(peer_id, address, device_capabilities), + discovery_timeout=args.discovery_timeout, + allowed_node_ids=allowed_node_ids + ) +elif args.discovery_module == "tailscale": + discovery = TailscaleDiscovery( + args.node_id, + args.node_port, + lambda peer_id, address, device_capabilities: GRPCPeerHandle(peer_id, address, device_capabilities), + discovery_timeout=args.discovery_timeout, + tailscale_api_key=args.tailscale_api_key, + tailnet=args.tailnet_name, + allowed_node_ids=allowed_node_ids + ) +elif args.discovery_module == "manual": + if not args.discovery_config_path: + raise ValueError(f"--discovery-config-path is required when using manual discovery. Please provide a path to a config json file.") + discovery = ManualDiscovery(args.discovery_config_path, args.node_id, create_peer_handle=lambda peer_id, address, device_capabilities: GRPCPeerHandle(peer_id, address, device_capabilities)) +topology_viz = TopologyViz(chatgpt_api_endpoints=chatgpt_api_endpoints, web_chat_urls=web_chat_urls) if not args.disable_tui else None +node = StandardNode( + args.node_id, + None, + inference_engine, + discovery, + partitioning_strategy=RingMemoryWeightedPartitioningStrategy(), + max_generate_tokens=args.max_generate_tokens, + topology_viz=topology_viz, + shard_downloader=shard_downloader, + default_sample_temperature=args.default_temp +) +server = GRPCServer(node, args.node_host, args.node_port) +node.server = server +api = ChatGPTAPI( + node, + inference_engine.__class__.__name__, + response_timeout=args.chatgpt_api_response_timeout, + on_chat_completion_request=lambda req_id, __, prompt: topology_viz.update_prompt(req_id, prompt) if topology_viz else None, + default_model=args.default_model +) +node.on_token.register("update_topology_viz").on_next( + lambda req_id, tokens, __: topology_viz.update_prompt_output(req_id, inference_engine.tokenizer.decode(tokens)) if topology_viz and hasattr(inference_engine, "tokenizer") and inference_engine.shard.model_id != 'stable-diffusion-2-1-base' else None +) + +def preemptively_start_download(request_id: str, opaque_status: str): + try: + status = json.loads(opaque_status) + if status.get("type") == "node_status" and status.get("status") == "start_process_prompt": + current_shard = node.get_current_shard(Shard.from_dict(status.get("shard"))) + if DEBUG >= 2: print(f"Preemptively starting download for {current_shard}") + asyncio.create_task(shard_downloader.ensure_shard(current_shard, inference_engine.__class__.__name__)) + except Exception as e: + if DEBUG >= 2: + print(f"Failed to preemptively start download: {e}") + traceback.print_exc() + + +node.on_opaque_status.register("start_download").on_next(preemptively_start_download) + +if args.prometheus_client_port: + from exo.stats.metrics import start_metrics_server + start_metrics_server(node, args.prometheus_client_port) + +last_broadcast_time = 0 + + +def throttled_broadcast(shard: Shard, event: RepoProgressEvent): + global last_broadcast_time + current_time = time.time() + if event.status == "complete" or current_time - last_broadcast_time >= 0.1: + last_broadcast_time = current_time + asyncio.create_task(node.broadcast_opaque_status("", json.dumps({"type": "download_progress", "node_id": node.id, "progress": event.to_dict()}))) + + +shard_downloader.on_progress.register("broadcast").on_next(throttled_broadcast) + +async def run_model_cli(node: Node, inference_engine: InferenceEngine, model_name: str, prompt: str): + inference_class = inference_engine.__class__.__name__ + shard = build_base_shard(model_name, inference_class) + if not shard: + print(f"Error: Unsupported model '{model_name}' for inference engine {inference_engine.__class__.__name__}") + return + tokenizer = await resolve_tokenizer(get_repo(shard.model_id, inference_class)) + request_id = str(uuid.uuid4()) + callback_id = f"cli-wait-response-{request_id}" + callback = node.on_token.register(callback_id) + if topology_viz: + topology_viz.update_prompt(request_id, prompt) + prompt = tokenizer.apply_chat_template([{"role": "user", "content": prompt}], tokenize=False, add_generation_prompt=True) + + try: + print(f"Processing prompt: {prompt}") + await node.process_prompt(shard, prompt, request_id=request_id) + + _, tokens, _ = await callback.wait(lambda _request_id, tokens, is_finished: _request_id == request_id and is_finished, timeout=300) + + print("\nGenerated response:") + print(tokenizer.decode(tokens)) + except Exception as e: + print(f"Error processing prompt: {str(e)}") + traceback.print_exc() + finally: + node.on_token.deregister(callback_id) + +def clean_path(path): + """Clean and resolve path""" + if path.startswith("Optional("): + path = path.strip('Optional("').rstrip('")') + return os.path.expanduser(path) + +async def main(): + loop = asyncio.get_running_loop() + + # Check HuggingFace directory permissions + hf_home, has_read, has_write = get_hf_home(), await has_hf_home_read_access(), await has_hf_home_write_access() + if DEBUG >= 1: print(f"Model storage directory: {hf_home}") + print(f"{has_read=}, {has_write=}") + if not has_read or not has_write: + print(f""" + WARNING: Limited permissions for model storage directory: {hf_home}. + This may prevent model downloads from working correctly. + {"❌ No read access" if not has_read else ""} + {"❌ No write access" if not has_write else ""} + """) + + if not args.models_seed_dir is None: + try: + models_seed_dir = clean_path(args.models_seed_dir) + await move_models_to_hf(models_seed_dir) + except Exception as e: + print(f"Error moving models to .cache/huggingface: {e}") + + def restore_cursor(): + if platform.system() != "Windows": + os.system("tput cnorm") # Show cursor + + # Restore the cursor when the program exits + atexit.register(restore_cursor) + + # Use a more direct approach to handle signals + def handle_exit(): + asyncio.ensure_future(shutdown(signal.SIGTERM, loop, node.server)) + + if platform.system() != "Windows": + for s in [signal.SIGINT, signal.SIGTERM]: + loop.add_signal_handler(s, handle_exit) + + await node.start(wait_for_peers=args.wait_for_peers) + + if args.command == "run" or args.run_model: + model_name = args.model_name or args.run_model + if not model_name: + print("Error: Model name is required when using 'run' command or --run-model") + return + await run_model_cli(node, inference_engine, model_name, args.prompt) + else: + asyncio.create_task(api.run(port=args.chatgpt_api_port)) # Start the API server as a non-blocking task + await asyncio.Event().wait() + + +def run(): + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + try: + loop.run_until_complete(main()) + except KeyboardInterrupt: + print("Received keyboard interrupt. Shutting down...") + finally: + loop.run_until_complete(shutdown(signal.SIGTERM, loop, node.server)) + loop.close() + + +if __name__ == "__main__": + run() diff --git a/build/lib/exo/models.py b/build/lib/exo/models.py new file mode 100644 index 00000000..2f34e257 --- /dev/null +++ b/build/lib/exo/models.py @@ -0,0 +1,151 @@ +from exo.inference.shard import Shard +from typing import Optional, List + +model_cards = { + ### llama + "llama-3.2-1b": { + "layers": 16, + "repo": { + "MLXDynamicShardInferenceEngine": "mlx-community/Llama-3.2-1B-Instruct-4bit", + "TinygradDynamicShardInferenceEngine": "unsloth/Llama-3.2-1B-Instruct", + }, + }, + "llama-3.2-3b": { + "layers": 28, + "repo": { + "MLXDynamicShardInferenceEngine": "mlx-community/Llama-3.2-3B-Instruct-4bit", + "TinygradDynamicShardInferenceEngine": "unsloth/Llama-3.2-3B-Instruct", + }, + }, + "llama-3.1-8b": { + "layers": 32, + "repo": { + "MLXDynamicShardInferenceEngine": "mlx-community/Meta-Llama-3.1-8B-Instruct-4bit", + "TinygradDynamicShardInferenceEngine": "mlabonne/Meta-Llama-3.1-8B-Instruct-abliterated", + }, + }, + "llama-3.1-70b": { + "layers": 80, + "repo": { + "MLXDynamicShardInferenceEngine": "mlx-community/Meta-Llama-3.1-70B-Instruct-4bit", + "TinygradDynamicShardInferenceEngine": "NousResearch/Meta-Llama-3.1-70B-Instruct", + }, + }, + "llama-3.1-70b-bf16": { + "layers": 80, + "repo": { + "MLXDynamicShardInferenceEngine": "mlx-community/Meta-Llama-3.1-70B-Instruct-bf16-CORRECTED", + "TinygradDynamicShardInferenceEngine": "NousResearch/Meta-Llama-3.1-70B-Instruct", + }, + }, + "llama-3-8b": { + "layers": 32, + "repo": { + "MLXDynamicShardInferenceEngine": "mlx-community/Meta-Llama-3-8B-Instruct-4bit", + "TinygradDynamicShardInferenceEngine": "TriAiExperiments/SFR-Iterative-DPO-LLaMA-3-8B-R", + }, + }, + "llama-3-70b": { + "layers": 80, + "repo": { + "MLXDynamicShardInferenceEngine": "mlx-community/Meta-Llama-3-70B-Instruct-4bit", + "TinygradDynamicShardInferenceEngine": "TriAiExperiments/SFR-Iterative-DPO-LLaMA-3-70B-R", + }, + }, + "llama-3.1-405b": { "layers": 126, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Meta-Llama-3.1-405B-4bit", }, }, + "llama-3.1-405b-8bit": { "layers": 126, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Meta-Llama-3.1-405B-Instruct-8bit", }, }, + ### mistral + "mistral-nemo": { "layers": 40, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Mistral-Nemo-Instruct-2407-4bit", }, }, + "mistral-large": { "layers": 88, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Mistral-Large-Instruct-2407-4bit", }, }, + ### deepseek + "deepseek-coder-v2-lite": { "layers": 27, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/DeepSeek-Coder-V2-Lite-Instruct-4bit-mlx", }, }, + "deepseek-coder-v2.5": { "layers": 60, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/DeepSeek-V2.5-MLX-AQ4_1_64", }, }, + ### llava + "llava-1.5-7b-hf": { "layers": 32, "repo": { "MLXDynamicShardInferenceEngine": "llava-hf/llava-1.5-7b-hf", }, }, + ### qwen + "qwen-2.5-0.5b": { "layers": 28, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Qwen2.5-0.5B-Instruct-4bit", }, }, + "qwen-2.5-coder-1.5b": { "layers": 28, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Qwen2.5-Coder-1.5B-Instruct-4bit", }, }, + "qwen-2.5-coder-3b": { "layers": 36, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Qwen2.5-Coder-3B-Instruct-4bit", }, }, + "qwen-2.5-coder-7b": { "layers": 28, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Qwen2.5-Coder-7B-Instruct-4bit", }, }, + "qwen-2.5-coder-14b": { "layers": 48, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Qwen2.5-Coder-14B-Instruct-4bit", }, }, + "qwen-2.5-coder-32b": { "layers": 64, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Qwen2.5-Coder-32B-Instruct-4bit", }, }, + "qwen-2.5-7b": { "layers": 28, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Qwen2.5-7B-Instruct-4bit", }, }, + "qwen-2.5-math-7b": { "layers": 28, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Qwen2.5-Math-7B-Instruct-4bit", }, }, + "qwen-2.5-14b": { "layers": 48, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Qwen2.5-14B-Instruct-4bit", }, }, + "qwen-2.5-72b": { "layers": 80, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Qwen2.5-72B-Instruct-4bit", }, }, + "qwen-2.5-math-72b": { "layers": 80, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Qwen2.5-Math-72B-Instruct-4bit", }, }, + ### nemotron + "nemotron-70b": { "layers": 80, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/nvidia_Llama-3.1-Nemotron-70B-Instruct-HF_4bit", }, }, + "nemotron-70b-bf16": { "layers": 80, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/Llama-3.1-Nemotron-70B-Instruct-HF-bf16", }, }, + # gemma + "gemma2-9b": { "layers": 42, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/gemma-2-9b-it-4bit", }, }, + "gemma2-27b": { "layers": 46, "repo": { "MLXDynamicShardInferenceEngine": "mlx-community/gemma-2-27b-it-4bit", }, }, + # stable diffusion + "stable-diffusion-2-1-base": { "layers": 31, "repo": { "MLXDynamicShardInferenceEngine": "stabilityai/stable-diffusion-2-1-base" } }, + # dummy + "dummy": { "layers": 8, "repo": { "DummyInferenceEngine": "dummy", }, }, +} + +pretty_name = { + "llama-3.2-1b": "Llama 3.2 1B", + "llama-3.2-3b": "Llama 3.2 3B", + "llama-3.1-8b": "Llama 3.1 8B", + "llama-3.1-70b": "Llama 3.1 70B", + "llama-3.1-70b-bf16": "Llama 3.1 70B (BF16)", + "llama-3.1-405b": "Llama 3.1 405B", + "llama-3.1-405b-8bit": "Llama 3.1 405B (8-bit)", + "gemma2-9b": "Gemma2 9B", + "gemma2-27b": "Gemma2 27B", + "nemotron-70b": "Nemotron 70B", + "nemotron-70b-bf16": "Nemotron 70B (BF16)", + "mistral-nemo": "Mistral Nemo", + "mistral-large": "Mistral Large", + "deepseek-coder-v2-lite": "Deepseek Coder V2 Lite", + "deepseek-coder-v2.5": "Deepseek Coder V2.5", + "llava-1.5-7b-hf": "LLaVa 1.5 7B (Vision Model)", + "qwen-2.5-coder-1.5b": "Qwen 2.5 Coder 1.5B", + "qwen-2.5-coder-3b": "Qwen 2.5 Coder 3B", + "qwen-2.5-coder-7b": "Qwen 2.5 Coder 7B", + "qwen-2.5-coder-14b": "Qwen 2.5 Coder 14B", + "qwen-2.5-coder-32b": "Qwen 2.5 Coder 32B", + "qwen-2.5-7b": "Qwen 2.5 7B", + "qwen-2.5-math-7b": "Qwen 2.5 7B (Math)", + "qwen-2.5-14b": "Qwen 2.5 14B", + "qwen-2.5-72b": "Qwen 2.5 72B", + "qwen-2.5-math-72b": "Qwen 2.5 72B (Math)", + "llama-3-8b": "Llama 3 8B", + "llama-3-70b": "Llama 3 70B", + "stable-diffusion-2-1-base": "Stable Diffusion 2.1", +} + +def get_repo(model_id: str, inference_engine_classname: str) -> Optional[str]: + return model_cards.get(model_id, {}).get("repo", {}).get(inference_engine_classname, None) + +def build_base_shard(model_id: str, inference_engine_classname: str) -> Optional[Shard]: + repo = get_repo(model_id, inference_engine_classname) + n_layers = model_cards.get(model_id, {}).get("layers", 0) + if repo is None or n_layers < 1: + return None + return Shard(model_id, 0, 0, n_layers) + +def get_supported_models(supported_inference_engine_lists: List[List[str]]) -> List[str]: + if not supported_inference_engine_lists: + return list(model_cards.keys()) + + from exo.inference.inference_engine import inference_engine_classes + supported_inference_engine_lists = [ + [inference_engine_classes[engine] if engine in inference_engine_classes else engine for engine in engine_list] + for engine_list in supported_inference_engine_lists + ] + + def has_any_engine(model_info: dict, engine_list: List[str]) -> bool: + return any(engine in model_info.get("repo", {}) for engine in engine_list) + + def supports_all_engine_lists(model_info: dict) -> bool: + return all(has_any_engine(model_info, engine_list) + for engine_list in supported_inference_engine_lists) + + return [ + model_id for model_id, model_info in model_cards.items() + if supports_all_engine_lists(model_info) + ] diff --git a/build/lib/exo/networking/__init__.py b/build/lib/exo/networking/__init__.py new file mode 100644 index 00000000..44a10a30 --- /dev/null +++ b/build/lib/exo/networking/__init__.py @@ -0,0 +1,5 @@ +from .discovery import Discovery +from .peer_handle import PeerHandle +from .server import Server + +__all__ = ["Discovery", "PeerHandle", "Server"] diff --git a/build/lib/exo/networking/discovery.py b/build/lib/exo/networking/discovery.py new file mode 100644 index 00000000..cdcbfabc --- /dev/null +++ b/build/lib/exo/networking/discovery.py @@ -0,0 +1,17 @@ +from abc import ABC, abstractmethod +from typing import List +from .peer_handle import PeerHandle + + +class Discovery(ABC): + @abstractmethod + async def start(self) -> None: + pass + + @abstractmethod + async def stop(self) -> None: + pass + + @abstractmethod + async def discover_peers(self, wait_for_peers: int = 0) -> List[PeerHandle]: + pass diff --git a/build/lib/exo/networking/grpc/__init__.py b/build/lib/exo/networking/grpc/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/networking/grpc/grpc_peer_handle.py b/build/lib/exo/networking/grpc/grpc_peer_handle.py new file mode 100644 index 00000000..25d441f2 --- /dev/null +++ b/build/lib/exo/networking/grpc/grpc_peer_handle.py @@ -0,0 +1,173 @@ +import grpc +import numpy as np +import asyncio +from typing import Optional, Tuple, List + +from . import node_service_pb2 +from . import node_service_pb2_grpc + +from ..peer_handle import PeerHandle +from exo.inference.shard import Shard +from exo.topology.topology import Topology +from exo.topology.device_capabilities import DeviceCapabilities, DeviceFlops +from exo.helpers import DEBUG +import json +import mlx.core as mx + +class GRPCPeerHandle(PeerHandle): + def __init__(self, _id: str, address: str, device_capabilities: DeviceCapabilities): + self._id = _id + self.address = address + self._device_capabilities = device_capabilities + self.channel = None + self.stub = None + + def id(self) -> str: + return self._id + + def addr(self) -> str: + return self.address + + def device_capabilities(self) -> DeviceCapabilities: + return self._device_capabilities + + async def connect(self): + if self.channel is None: + self.channel = grpc.aio.insecure_channel(self.address, options=[ + ("grpc.max_metadata_size", 32*1024*1024), + ('grpc.max_receive_message_length', 32*1024*1024), + ('grpc.max_send_message_length', 32*1024*1024) + ]) + self.stub = node_service_pb2_grpc.NodeServiceStub(self.channel) + await self.channel.channel_ready() + + async def is_connected(self) -> bool: + return self.channel is not None and self.channel.get_state() == grpc.ChannelConnectivity.READY + + async def disconnect(self): + if self.channel: + await self.channel.close() + self.channel = None + self.stub = None + + async def _ensure_connected(self): + if not await self.is_connected(): await asyncio.wait_for(self.connect(), timeout=5) + + async def health_check(self) -> bool: + try: + await self._ensure_connected() + request = node_service_pb2.HealthCheckRequest() + response = await asyncio.wait_for(self.stub.HealthCheck(request), timeout=5) + return response.is_healthy + except asyncio.TimeoutError: + return False + except Exception: + if DEBUG >= 4: + print(f"Health check failed for {self._id}@{self.address}.") + import traceback + traceback.print_exc() + return False + + async def send_prompt(self, shard: Shard, prompt: str, inference_state: Optional[dict] = None, request_id: Optional[str] = None) -> Optional[np.array]: + request = node_service_pb2.PromptRequest( + prompt=prompt, + shard=node_service_pb2.Shard( + model_id=shard.model_id, + start_layer=shard.start_layer, + end_layer=shard.end_layer, + n_layers=shard.n_layers, + ), + request_id=request_id, + inference_state=self.serialize_inference_state(inference_state) + ) + response = await self.stub.SendPrompt(request) + + if not response.tensor_data or not response.shape or not response.dtype: + return None + + return np.frombuffer(response.tensor_data, dtype=np.dtype(response.dtype)).reshape(response.shape) + + async def send_tensor(self, shard: Shard, tensor: np.ndarray, inference_state: Optional[dict] = None, request_id: Optional[str] = None) -> Optional[np.array]: + request = node_service_pb2.TensorRequest( + shard=node_service_pb2.Shard( + model_id=shard.model_id, + start_layer=shard.start_layer, + end_layer=shard.end_layer, + n_layers=shard.n_layers, + ), + tensor=node_service_pb2.Tensor(tensor_data=tensor.tobytes(), shape=tensor.shape, dtype=str(tensor.dtype)), + request_id=request_id, + inference_state=self.serialize_inference_state(inference_state) + ) + response = await self.stub.SendTensor(request) + + if not response.tensor_data or not response.shape or not response.dtype: + return None + + return np.frombuffer(response.tensor_data, dtype=np.dtype(response.dtype)).reshape(response.shape) + + async def get_inference_result(self, request_id: str) -> Tuple[Optional[np.ndarray], bool]: + request = node_service_pb2.GetInferenceResultRequest(request_id=request_id) + response = await self.stub.GetInferenceResult(request) + if response.tensor is None: + return None, response.is_finished + return ( + np.frombuffer(response.tensor.tensor_data, dtype=np.dtype(response.tensor.dtype)).reshape(response.tensor.shape), + response.is_finished, + ) + + async def collect_topology(self, visited: set[str], max_depth: int) -> Topology: + request = node_service_pb2.CollectTopologyRequest(visited=visited, max_depth=max_depth) + response = await self.stub.CollectTopology(request) + topology = Topology() + for node_id, capabilities in response.nodes.items(): + device_capabilities = DeviceCapabilities( + model=capabilities.model, chip=capabilities.chip, memory=capabilities.memory, flops=DeviceFlops(fp16=capabilities.flops.fp16, fp32=capabilities.flops.fp32, int8=capabilities.flops.int8) + ) + topology.update_node(node_id, device_capabilities) + for node_id, peers in response.peer_graph.items(): + for peer_id in peers.peer_ids: + topology.add_edge(node_id, peer_id) + return topology + + async def send_result(self, request_id: str, result: List[int], is_finished: bool) -> None: + tensor = None + if isinstance(result, np.ndarray): + tensor = node_service_pb2.Tensor(tensor_data=result.tobytes(), shape=result.shape, dtype=str(result.dtype)) + result = [] + request = node_service_pb2.SendResultRequest(request_id=request_id, result=result, tensor=tensor, is_finished=is_finished) + await self.stub.SendResult(request) + + async def send_opaque_status(self, request_id: str, status: str) -> None: + request = node_service_pb2.SendOpaqueStatusRequest(request_id=request_id, status=status) + await self.stub.SendOpaqueStatus(request) + + def serialize_inference_state(self, inference_state: dict) -> node_service_pb2.InferenceState: + proto_inference_state = node_service_pb2.InferenceState() + other_data = {} + for k, v in inference_state.items(): + if isinstance(v, mx.array): + np_array = np.array(v) + tensor_data = node_service_pb2.Tensor( + tensor_data=np_array.tobytes(), + shape=list(np_array.shape), + dtype=str(np_array.dtype) + ) + proto_inference_state.tensor_data[k].CopyFrom(tensor_data) + elif isinstance(v, list) and all(isinstance(item, mx.array) for item in v): + tensor_list = node_service_pb2.TensorList() + for tensor in v: + np_array = np.array(tensor) + tensor_data = node_service_pb2.Tensor( + tensor_data=np_array.tobytes(), + shape=list(np_array.shape), + dtype=str(np_array.dtype) + ) + tensor_list.tensors.append(tensor_data) + proto_inference_state.tensor_list_data[k].CopyFrom(tensor_list) + else: + # For non-tensor data, we'll still use JSON + other_data[k] = v + if other_data: + proto_inference_state.other_data_json = json.dumps(other_data) + return proto_inference_state diff --git a/build/lib/exo/networking/grpc/grpc_server.py b/build/lib/exo/networking/grpc/grpc_server.py new file mode 100644 index 00000000..8155e642 --- /dev/null +++ b/build/lib/exo/networking/grpc/grpc_server.py @@ -0,0 +1,147 @@ +import grpc +from concurrent import futures +import numpy as np +from asyncio import CancelledError + +from . import node_service_pb2 +from . import node_service_pb2_grpc +from exo import DEBUG +from exo.inference.shard import Shard +from exo.orchestration import Node +import json +import mlx.core as mx + + +class GRPCServer(node_service_pb2_grpc.NodeServiceServicer): + def __init__(self, node: Node, host: str, port: int): + self.node = node + self.host = host + self.port = port + self.server = None + + async def start(self) -> None: + self.server = grpc.aio.server( + futures.ThreadPoolExecutor(max_workers=10), + options=[ + ("grpc.max_metadata_size", 32*1024*1024), + ("grpc.max_send_message_length", 128*1024*1024), + ("grpc.max_receive_message_length", 128*1024*1024), + ], + ) + node_service_pb2_grpc.add_NodeServiceServicer_to_server(self, self.server) + listen_addr = f"{self.host}:{self.port}" + self.server.add_insecure_port(listen_addr) + await self.server.start() + if DEBUG >= 1: print(f"Server started, listening on {listen_addr}") + + async def stop(self) -> None: + if self.server: + try: + await self.server.stop(grace=5) + await self.server.wait_for_termination() + except CancelledError: + pass + if DEBUG >= 1: print("Server stopped and all connections are closed") + + async def SendPrompt(self, request, context): + shard = Shard( + model_id=request.shard.model_id, + start_layer=request.shard.start_layer, + end_layer=request.shard.end_layer, + n_layers=request.shard.n_layers, + ) + prompt = request.prompt + request_id = request.request_id + inference_state = self.deserialize_inference_state(request.inference_state) + result = await self.node.process_prompt(shard, prompt, request_id, inference_state) + if DEBUG >= 5: print(f"SendPrompt {shard=} {prompt=} {request_id=} result: {result}") + tensor_data = result.tobytes() if result is not None else None + return node_service_pb2.Tensor(tensor_data=tensor_data, shape=result.shape, dtype=str(result.dtype)) if result is not None else node_service_pb2.Tensor() + + async def SendTensor(self, request, context): + shard = Shard( + model_id=request.shard.model_id, + start_layer=request.shard.start_layer, + end_layer=request.shard.end_layer, + n_layers=request.shard.n_layers, + ) + tensor = np.frombuffer(request.tensor.tensor_data, dtype=np.dtype(request.tensor.dtype)).reshape(request.tensor.shape) + request_id = request.request_id + + inference_state = self.deserialize_inference_state(request.inference_state) + + result = await self.node.process_tensor(shard, tensor, request_id, inference_state) + if DEBUG >= 5: print(f"SendTensor tensor {shard=} {tensor=} {request_id=} result: {result}") + tensor_data = result.tobytes() if result is not None else None + return node_service_pb2.Tensor(tensor_data=tensor_data, shape=result.shape, dtype=str(result.dtype)) if result is not None else node_service_pb2.Tensor() + + async def GetInferenceResult(self, request, context): + request_id = request.request_id + result = await self.node.get_inference_result(request_id) + if DEBUG >= 5: print(f"GetInferenceResult {request_id=}: {result}") + tensor_data = result[0].tobytes() if result[0] is not None else None + return ( + node_service_pb2.InferenceResult( + tensor=node_service_pb2.Tensor(tensor_data=tensor_data, shape=result[0].shape, dtype=str(result[0].dtype)), + is_finished=result[1], + ) if result[0] is not None else node_service_pb2.InferenceResult(is_finished=result[1]) + ) + + async def CollectTopology(self, request, context): + max_depth = request.max_depth + visited = set(request.visited) + topology = await self.node.collect_topology(visited, max_depth) + nodes = { + node_id: + node_service_pb2.DeviceCapabilities( + model=cap.model, + chip=cap.chip, + memory=cap.memory, + flops=node_service_pb2.DeviceFlops(fp32=cap.flops.fp32, fp16=cap.flops.fp16, int8=cap.flops.int8), + ) + for node_id, cap in topology.nodes.items() + } + peer_graph = {node_id: node_service_pb2.Peers(peer_ids=peers) for node_id, peers in topology.peer_graph.items()} + if DEBUG >= 5: print(f"CollectTopology {max_depth=} {visited=} {nodes=} {peer_graph=}") + return node_service_pb2.Topology(nodes=nodes, peer_graph=peer_graph) + + async def SendResult(self, request, context): + request_id = request.request_id + result = request.result + is_finished = request.is_finished + img = request.tensor + if DEBUG >= 5: print(f"Received SendResult request: {request_id=} {result=} {is_finished=}") + result = list(result) + if len(img.tensor_data) > 0: + result=np.frombuffer(img.tensor_data, dtype=np.dtype(img.dtype)).reshape(img.shape) + self.node.on_token.trigger_all(request_id, result, is_finished) + return node_service_pb2.Empty() + + async def SendOpaqueStatus(self, request, context): + request_id = request.request_id + status = request.status + if DEBUG >= 8: print(f"Received SendOpaqueStatus request: {request_id=} {status=}") + self.node.on_opaque_status.trigger_all(request_id, status) + return node_service_pb2.Empty() + + async def HealthCheck(self, request, context): + return node_service_pb2.HealthCheckResponse(is_healthy=True) + + def deserialize_inference_state(self,inference_state_proto: node_service_pb2.InferenceState) -> dict: + inference_state = {} + + for k, tensor_data in inference_state_proto.tensor_data.items(): + np_array = np.frombuffer(tensor_data.tensor_data, dtype=tensor_data.dtype).reshape(tensor_data.shape) + inference_state[k] = mx.array(np_array) + + for k, tensor_list in inference_state_proto.tensor_list_data.items(): + inference_state[k] = [ + mx.array(np.frombuffer(tensor.tensor_data, dtype=tensor.dtype).reshape(tensor.shape)) + for tensor in tensor_list.tensors + ] + + if inference_state_proto.other_data_json: + other_data = json.loads(inference_state_proto.other_data_json) + inference_state.update(other_data) + + return inference_state diff --git a/build/lib/exo/networking/grpc/node_service_pb2.py b/build/lib/exo/networking/grpc/node_service_pb2.py new file mode 100644 index 00000000..deb9074e --- /dev/null +++ b/build/lib/exo/networking/grpc/node_service_pb2.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: node_service.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12node_service.proto\x12\x0cnode_service\"S\n\x05Shard\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x13\n\x0bstart_layer\x18\x02 \x01(\x05\x12\x11\n\tend_layer\x18\x03 \x01(\x05\x12\x10\n\x08n_layers\x18\x04 \x01(\x05\"\xbb\x01\n\rPromptRequest\x12\"\n\x05shard\x18\x01 \x01(\x0b\x32\x13.node_service.Shard\x12\x0e\n\x06prompt\x18\x02 \x01(\t\x12\x17\n\nrequest_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12:\n\x0finference_state\x18\x04 \x01(\x0b\x32\x1c.node_service.InferenceStateH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x12\n\x10_inference_state\"\xd1\x01\n\rTensorRequest\x12\"\n\x05shard\x18\x01 \x01(\x0b\x32\x13.node_service.Shard\x12$\n\x06tensor\x18\x02 \x01(\x0b\x32\x14.node_service.Tensor\x12\x17\n\nrequest_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12:\n\x0finference_state\x18\x04 \x01(\x0b\x32\x1c.node_service.InferenceStateH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x12\n\x10_inference_state\"/\n\x19GetInferenceResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"\\\n\x0fInferenceResult\x12)\n\x06tensor\x18\x01 \x01(\x0b\x32\x14.node_service.TensorH\x00\x88\x01\x01\x12\x13\n\x0bis_finished\x18\x02 \x01(\x08\x42\t\n\x07_tensor\";\n\x06Tensor\x12\x13\n\x0btensor_data\x18\x01 \x01(\x0c\x12\r\n\x05shape\x18\x02 \x03(\x05\x12\r\n\x05\x64type\x18\x03 \x01(\t\"3\n\nTensorList\x12%\n\x07tensors\x18\x01 \x03(\x0b\x32\x14.node_service.Tensor\"\xd2\x02\n\x0eInferenceState\x12\x41\n\x0btensor_data\x18\x01 \x03(\x0b\x32,.node_service.InferenceState.TensorDataEntry\x12J\n\x10tensor_list_data\x18\x02 \x03(\x0b\x32\x30.node_service.InferenceState.TensorListDataEntry\x12\x17\n\x0fother_data_json\x18\x03 \x01(\t\x1aG\n\x0fTensorDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.node_service.Tensor:\x02\x38\x01\x1aO\n\x13TensorListDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.node_service.TensorList:\x02\x38\x01\"<\n\x16\x43ollectTopologyRequest\x12\x0f\n\x07visited\x18\x01 \x03(\t\x12\x11\n\tmax_depth\x18\x02 \x01(\x05\"\x8e\x02\n\x08Topology\x12\x30\n\x05nodes\x18\x01 \x03(\x0b\x32!.node_service.Topology.NodesEntry\x12\x39\n\npeer_graph\x18\x02 \x03(\x0b\x32%.node_service.Topology.PeerGraphEntry\x1aN\n\nNodesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .node_service.DeviceCapabilities:\x02\x38\x01\x1a\x45\n\x0ePeerGraphEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.node_service.Peers:\x02\x38\x01\"\x19\n\x05Peers\x12\x10\n\x08peer_ids\x18\x01 \x03(\t\"7\n\x0b\x44\x65viceFlops\x12\x0c\n\x04\x66p32\x18\x01 \x01(\x02\x12\x0c\n\x04\x66p16\x18\x02 \x01(\x02\x12\x0c\n\x04int8\x18\x03 \x01(\x02\"k\n\x12\x44\x65viceCapabilities\x12\r\n\x05model\x18\x01 \x01(\t\x12\x0c\n\x04\x63hip\x18\x02 \x01(\t\x12\x0e\n\x06memory\x18\x03 \x01(\x05\x12(\n\x05\x66lops\x18\x04 \x01(\x0b\x32\x19.node_service.DeviceFlops\"\x82\x01\n\x11SendResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0e\n\x06result\x18\x02 \x03(\x05\x12)\n\x06tensor\x18\x03 \x01(\x0b\x32\x14.node_service.TensorH\x00\x88\x01\x01\x12\x13\n\x0bis_finished\x18\x04 \x01(\x08\x42\t\n\x07_tensor\"=\n\x17SendOpaqueStatusRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\"\x14\n\x12HealthCheckRequest\")\n\x13HealthCheckResponse\x12\x12\n\nis_healthy\x18\x01 \x01(\x08\"\x07\n\x05\x45mpty2\xb4\x04\n\x0bNodeService\x12\x41\n\nSendPrompt\x12\x1b.node_service.PromptRequest\x1a\x14.node_service.Tensor\"\x00\x12\x41\n\nSendTensor\x12\x1b.node_service.TensorRequest\x1a\x14.node_service.Tensor\"\x00\x12^\n\x12GetInferenceResult\x12\'.node_service.GetInferenceResultRequest\x1a\x1d.node_service.InferenceResult\"\x00\x12Q\n\x0f\x43ollectTopology\x12$.node_service.CollectTopologyRequest\x1a\x16.node_service.Topology\"\x00\x12\x44\n\nSendResult\x12\x1f.node_service.SendResultRequest\x1a\x13.node_service.Empty\"\x00\x12P\n\x10SendOpaqueStatus\x12%.node_service.SendOpaqueStatusRequest\x1a\x13.node_service.Empty\"\x00\x12T\n\x0bHealthCheck\x12 .node_service.HealthCheckRequest\x1a!.node_service.HealthCheckResponse\"\x00\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'node_service_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_INFERENCESTATE_TENSORDATAENTRY']._loaded_options = None + _globals['_INFERENCESTATE_TENSORDATAENTRY']._serialized_options = b'8\001' + _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._loaded_options = None + _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._serialized_options = b'8\001' + _globals['_TOPOLOGY_NODESENTRY']._loaded_options = None + _globals['_TOPOLOGY_NODESENTRY']._serialized_options = b'8\001' + _globals['_TOPOLOGY_PEERGRAPHENTRY']._loaded_options = None + _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_options = b'8\001' + _globals['_SHARD']._serialized_start=36 + _globals['_SHARD']._serialized_end=119 + _globals['_PROMPTREQUEST']._serialized_start=122 + _globals['_PROMPTREQUEST']._serialized_end=309 + _globals['_TENSORREQUEST']._serialized_start=312 + _globals['_TENSORREQUEST']._serialized_end=521 + _globals['_GETINFERENCERESULTREQUEST']._serialized_start=523 + _globals['_GETINFERENCERESULTREQUEST']._serialized_end=570 + _globals['_INFERENCERESULT']._serialized_start=572 + _globals['_INFERENCERESULT']._serialized_end=664 + _globals['_TENSOR']._serialized_start=666 + _globals['_TENSOR']._serialized_end=725 + _globals['_TENSORLIST']._serialized_start=727 + _globals['_TENSORLIST']._serialized_end=778 + _globals['_INFERENCESTATE']._serialized_start=781 + _globals['_INFERENCESTATE']._serialized_end=1119 + _globals['_INFERENCESTATE_TENSORDATAENTRY']._serialized_start=967 + _globals['_INFERENCESTATE_TENSORDATAENTRY']._serialized_end=1038 + _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._serialized_start=1040 + _globals['_INFERENCESTATE_TENSORLISTDATAENTRY']._serialized_end=1119 + _globals['_COLLECTTOPOLOGYREQUEST']._serialized_start=1121 + _globals['_COLLECTTOPOLOGYREQUEST']._serialized_end=1181 + _globals['_TOPOLOGY']._serialized_start=1184 + _globals['_TOPOLOGY']._serialized_end=1454 + _globals['_TOPOLOGY_NODESENTRY']._serialized_start=1305 + _globals['_TOPOLOGY_NODESENTRY']._serialized_end=1383 + _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_start=1385 + _globals['_TOPOLOGY_PEERGRAPHENTRY']._serialized_end=1454 + _globals['_PEERS']._serialized_start=1456 + _globals['_PEERS']._serialized_end=1481 + _globals['_DEVICEFLOPS']._serialized_start=1483 + _globals['_DEVICEFLOPS']._serialized_end=1538 + _globals['_DEVICECAPABILITIES']._serialized_start=1540 + _globals['_DEVICECAPABILITIES']._serialized_end=1647 + _globals['_SENDRESULTREQUEST']._serialized_start=1650 + _globals['_SENDRESULTREQUEST']._serialized_end=1780 + _globals['_SENDOPAQUESTATUSREQUEST']._serialized_start=1782 + _globals['_SENDOPAQUESTATUSREQUEST']._serialized_end=1843 + _globals['_HEALTHCHECKREQUEST']._serialized_start=1845 + _globals['_HEALTHCHECKREQUEST']._serialized_end=1865 + _globals['_HEALTHCHECKRESPONSE']._serialized_start=1867 + _globals['_HEALTHCHECKRESPONSE']._serialized_end=1908 + _globals['_EMPTY']._serialized_start=1910 + _globals['_EMPTY']._serialized_end=1917 + _globals['_NODESERVICE']._serialized_start=1920 + _globals['_NODESERVICE']._serialized_end=2484 +# @@protoc_insertion_point(module_scope) diff --git a/build/lib/exo/networking/grpc/node_service_pb2_grpc.py b/build/lib/exo/networking/grpc/node_service_pb2_grpc.py new file mode 100644 index 00000000..ee6ba63b --- /dev/null +++ b/build/lib/exo/networking/grpc/node_service_pb2_grpc.py @@ -0,0 +1,360 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + +from exo.networking.grpc import node_service_pb2 as node__service__pb2 + +GRPC_GENERATED_VERSION = '1.64.1' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.65.0' +SCHEDULED_RELEASE_DATE = 'June 25, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in node_service_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) + + +class NodeServiceStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.SendPrompt = channel.unary_unary( + '/node_service.NodeService/SendPrompt', + request_serializer=node__service__pb2.PromptRequest.SerializeToString, + response_deserializer=node__service__pb2.Tensor.FromString, + _registered_method=True) + self.SendTensor = channel.unary_unary( + '/node_service.NodeService/SendTensor', + request_serializer=node__service__pb2.TensorRequest.SerializeToString, + response_deserializer=node__service__pb2.Tensor.FromString, + _registered_method=True) + self.GetInferenceResult = channel.unary_unary( + '/node_service.NodeService/GetInferenceResult', + request_serializer=node__service__pb2.GetInferenceResultRequest.SerializeToString, + response_deserializer=node__service__pb2.InferenceResult.FromString, + _registered_method=True) + self.CollectTopology = channel.unary_unary( + '/node_service.NodeService/CollectTopology', + request_serializer=node__service__pb2.CollectTopologyRequest.SerializeToString, + response_deserializer=node__service__pb2.Topology.FromString, + _registered_method=True) + self.SendResult = channel.unary_unary( + '/node_service.NodeService/SendResult', + request_serializer=node__service__pb2.SendResultRequest.SerializeToString, + response_deserializer=node__service__pb2.Empty.FromString, + _registered_method=True) + self.SendOpaqueStatus = channel.unary_unary( + '/node_service.NodeService/SendOpaqueStatus', + request_serializer=node__service__pb2.SendOpaqueStatusRequest.SerializeToString, + response_deserializer=node__service__pb2.Empty.FromString, + _registered_method=True) + self.HealthCheck = channel.unary_unary( + '/node_service.NodeService/HealthCheck', + request_serializer=node__service__pb2.HealthCheckRequest.SerializeToString, + response_deserializer=node__service__pb2.HealthCheckResponse.FromString, + _registered_method=True) + + +class NodeServiceServicer(object): + """Missing associated documentation comment in .proto file.""" + + def SendPrompt(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SendTensor(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetInferenceResult(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CollectTopology(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SendResult(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SendOpaqueStatus(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def HealthCheck(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_NodeServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'SendPrompt': grpc.unary_unary_rpc_method_handler( + servicer.SendPrompt, + request_deserializer=node__service__pb2.PromptRequest.FromString, + response_serializer=node__service__pb2.Tensor.SerializeToString, + ), + 'SendTensor': grpc.unary_unary_rpc_method_handler( + servicer.SendTensor, + request_deserializer=node__service__pb2.TensorRequest.FromString, + response_serializer=node__service__pb2.Tensor.SerializeToString, + ), + 'GetInferenceResult': grpc.unary_unary_rpc_method_handler( + servicer.GetInferenceResult, + request_deserializer=node__service__pb2.GetInferenceResultRequest.FromString, + response_serializer=node__service__pb2.InferenceResult.SerializeToString, + ), + 'CollectTopology': grpc.unary_unary_rpc_method_handler( + servicer.CollectTopology, + request_deserializer=node__service__pb2.CollectTopologyRequest.FromString, + response_serializer=node__service__pb2.Topology.SerializeToString, + ), + 'SendResult': grpc.unary_unary_rpc_method_handler( + servicer.SendResult, + request_deserializer=node__service__pb2.SendResultRequest.FromString, + response_serializer=node__service__pb2.Empty.SerializeToString, + ), + 'SendOpaqueStatus': grpc.unary_unary_rpc_method_handler( + servicer.SendOpaqueStatus, + request_deserializer=node__service__pb2.SendOpaqueStatusRequest.FromString, + response_serializer=node__service__pb2.Empty.SerializeToString, + ), + 'HealthCheck': grpc.unary_unary_rpc_method_handler( + servicer.HealthCheck, + request_deserializer=node__service__pb2.HealthCheckRequest.FromString, + response_serializer=node__service__pb2.HealthCheckResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'node_service.NodeService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('node_service.NodeService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class NodeService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def SendPrompt(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/node_service.NodeService/SendPrompt', + node__service__pb2.PromptRequest.SerializeToString, + node__service__pb2.Tensor.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SendTensor(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/node_service.NodeService/SendTensor', + node__service__pb2.TensorRequest.SerializeToString, + node__service__pb2.Tensor.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetInferenceResult(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/node_service.NodeService/GetInferenceResult', + node__service__pb2.GetInferenceResultRequest.SerializeToString, + node__service__pb2.InferenceResult.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CollectTopology(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/node_service.NodeService/CollectTopology', + node__service__pb2.CollectTopologyRequest.SerializeToString, + node__service__pb2.Topology.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SendResult(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/node_service.NodeService/SendResult', + node__service__pb2.SendResultRequest.SerializeToString, + node__service__pb2.Empty.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SendOpaqueStatus(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/node_service.NodeService/SendOpaqueStatus', + node__service__pb2.SendOpaqueStatusRequest.SerializeToString, + node__service__pb2.Empty.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def HealthCheck(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/node_service.NodeService/HealthCheck', + node__service__pb2.HealthCheckRequest.SerializeToString, + node__service__pb2.HealthCheckResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/build/lib/exo/networking/manual/__init__.py b/build/lib/exo/networking/manual/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/networking/manual/manual_discovery.py b/build/lib/exo/networking/manual/manual_discovery.py new file mode 100644 index 00000000..f8aba9ed --- /dev/null +++ b/build/lib/exo/networking/manual/manual_discovery.py @@ -0,0 +1,71 @@ +import asyncio +from exo.networking.discovery import Discovery +from typing import Dict, List, Callable + +from exo.topology.device_capabilities import DeviceCapabilities +from exo.networking.manual.network_topology_config import NetworkTopology, PeerConfig +from exo.helpers import DEBUG_DISCOVERY +from exo.networking.peer_handle import PeerHandle + + +class ManualDiscovery(Discovery): + def __init__( + self, + network_config_path: str, + node_id: str, + create_peer_handle: Callable[[str, str, DeviceCapabilities], PeerHandle], + ): + self.topology = NetworkTopology.from_path(network_config_path) + self.create_peer_handle = create_peer_handle + + if node_id not in self.topology.peers: + raise ValueError( + f"Node ID {node_id} not found in network config file {network_config_path}. Please run with `node_id` set to one of the keys in the config file: {[k for k, _ in self.topology.peers]}" + ) + + self.listen_task = None + + self.known_peers: Dict[str, PeerHandle] = {} + self.peers_in_network: Dict[str, PeerConfig] = self.topology.peers + self.peers_in_network.pop(node_id) + + async def start(self) -> None: + self.listen_task = asyncio.create_task(self.task_find_peers_from_config()) + + async def stop(self) -> None: + if self.listen_task: + self.listen_task.cancel() + + async def discover_peers(self, wait_for_peers: int = 0) -> List[PeerHandle]: + if wait_for_peers > 0: + while len(self.known_peers) < wait_for_peers: + if DEBUG_DISCOVERY >= 2: print(f"Current peers: {len(self.known_peers)}/{wait_for_peers}. Waiting for more peers...") + await asyncio.sleep(0.1) + if DEBUG_DISCOVERY >= 2: print(f"Discovered peers: {[peer.id() for peer in self.known_peers.values()]}") + return list(self.known_peers.values()) + + async def task_find_peers_from_config(self): + if DEBUG_DISCOVERY >= 2: print("Starting task to find peers from config...") + while True: + for peer_id, peer_config in self.peers_in_network.items(): + try: + if DEBUG_DISCOVERY >= 2: print(f"Checking peer {peer_id=} at {peer_config.address}:{peer_config.port}") + peer = self.known_peers.get(peer_id) + if not peer: + if DEBUG_DISCOVERY >= 2: print(f"{peer_id=} not found in known peers. Adding.") + peer = self.create_peer_handle(peer_id, f"{peer_config.address}:{peer_config.port}", peer_config.device_capabilities) + is_healthy = await peer.health_check() + if is_healthy: + if DEBUG_DISCOVERY >= 2: print(f"{peer_id=} at {peer_config.address}:{peer_config.port} is healthy.") + self.known_peers[peer_id] = peer + else: + if DEBUG_DISCOVERY >= 2: print(f"{peer_id=} at {peer_config.address}:{peer_config.port} is not healthy.") + try: + del self.known_peers[peer_id] + except KeyError: + pass + except Exception as e: + if DEBUG_DISCOVERY >= 2: print(f"Exception occured when attempting to add {peer_id=}: {e}") + await asyncio.sleep(1.0) + + if DEBUG_DISCOVERY >= 2: print(f"Current known peers: {[peer.id() for peer in self.known_peers.values()]}") diff --git a/build/lib/exo/networking/manual/network_topology_config.py b/build/lib/exo/networking/manual/network_topology_config.py new file mode 100644 index 00000000..c0246ec3 --- /dev/null +++ b/build/lib/exo/networking/manual/network_topology_config.py @@ -0,0 +1,31 @@ +from typing import Dict +from pydantic import BaseModel, ValidationError + +from exo.topology.device_capabilities import DeviceCapabilities + + +class PeerConfig(BaseModel): + address: str + port: int + device_capabilities: DeviceCapabilities + + +class NetworkTopology(BaseModel): + """Configuration of the network. A collection outlining all nodes in the network, including the node this is running from.""" + + peers: Dict[str, PeerConfig] + """ + node_id to PeerConfig. The node_id is used to identify the peer in the discovery process. The node that this is running from should be included in this dict. + """ + @classmethod + def from_path(cls, path: str) -> "NetworkTopology": + try: + with open(path, "r") as f: + config_data = f.read() + except FileNotFoundError as e: + raise FileNotFoundError(f"Config file not found at {path}") from e + + try: + return cls.model_validate_json(config_data) + except ValidationError as e: + raise ValueError(f"Error validating network topology config from {path}: {e}") from e diff --git a/build/lib/exo/networking/manual/test_manual_discovery.py b/build/lib/exo/networking/manual/test_manual_discovery.py new file mode 100644 index 00000000..902e20bf --- /dev/null +++ b/build/lib/exo/networking/manual/test_manual_discovery.py @@ -0,0 +1,103 @@ +import asyncio +import unittest +from unittest import mock +from exo.networking.manual.manual_discovery import ManualDiscovery +from exo.networking.manual.network_topology_config import NetworkTopology +from exo.networking.grpc.grpc_peer_handle import GRPCPeerHandle +from exo.networking.grpc.grpc_server import GRPCServer +from exo.orchestration.node import Node + +root_path = "./exo/networking/manual/test_data/test_config.json" + + +class TestSingleNodeManualDiscovery(unittest.IsolatedAsyncioTestCase): + async def asyncSetUp(self): + self.peer1 = mock.AsyncMock() + self.peer1.connect = mock.AsyncMock() + self.discovery1 = ManualDiscovery(root_path, "node1", create_peer_handle=lambda peer_id, address, device_capabilities: self.peer1) + _ = self.discovery1.start() + + async def asyncTearDown(self): + await self.discovery1.stop() + + async def test_discovery(self): + peers1 = await self.discovery1.discover_peers(wait_for_peers=0) + assert len(peers1) == 0 + + self.peer1.connect.assert_not_called() + + +class TestManualDiscovery(unittest.IsolatedAsyncioTestCase): + async def asyncSetUp(self): + self.peer1 = mock.AsyncMock() + self.peer2 = mock.AsyncMock() + self.peer1.connect = mock.AsyncMock() + self.peer2.connect = mock.AsyncMock() + self.discovery1 = ManualDiscovery(root_path, "node1", create_peer_handle=lambda peer_id, address, device_capabilities: self.peer1) + self.discovery2 = ManualDiscovery(root_path, "node2", create_peer_handle=lambda peer_id, address, device_capabilities: self.peer2) + await self.discovery1.start() + await self.discovery2.start() + + async def asyncTearDown(self): + await self.discovery1.stop() + await self.discovery2.stop() + + async def test_discovery(self): + peers1 = await self.discovery1.discover_peers(wait_for_peers=1) + assert len(peers1) == 1 + peers2 = await self.discovery2.discover_peers(wait_for_peers=1) + assert len(peers2) == 1 + + # connect has to be explicitly called after discovery + self.peer1.connect.assert_not_called() + self.peer2.connect.assert_not_called() + + +class TestManualDiscoveryWithGRPCPeerHandle(unittest.IsolatedAsyncioTestCase): + async def asyncSetUp(self): + config = NetworkTopology.from_path(root_path) + + self.node1 = mock.AsyncMock(spec=Node) + self.node2 = mock.AsyncMock(spec=Node) + self.server1 = GRPCServer(self.node1, config.peers["node1"].address, config.peers["node1"].port) + self.server2 = GRPCServer(self.node2, config.peers["node2"].address, config.peers["node2"].port) + await self.server1.start() + await self.server2.start() + self.discovery1 = ManualDiscovery(root_path, "node1", create_peer_handle=lambda peer_id, address, device_capabilities: GRPCPeerHandle(peer_id, address, device_capabilities)) + self.discovery2 = ManualDiscovery(root_path, "node2", create_peer_handle=lambda peer_id, address, device_capabilities: GRPCPeerHandle(peer_id, address, device_capabilities)) + await self.discovery1.start() + await self.discovery2.start() + + async def asyncTearDown(self): + await self.discovery1.stop() + await self.discovery2.stop() + await self.server1.stop() + await self.server2.stop() + + async def test_grpc_discovery(self): + peers1 = await self.discovery1.discover_peers(wait_for_peers=1) + assert len(peers1) == 1 + peers2 = await self.discovery2.discover_peers(wait_for_peers=1) + assert len(peers2) == 1 + + # Connect + await peers1[0].connect() + await peers2[0].connect() + self.assertTrue(await peers1[0].is_connected()) + self.assertTrue(await peers2[0].is_connected()) + + # Kill server1 + await self.server1.stop() + + self.assertTrue(await peers1[0].is_connected()) + self.assertFalse(await peers2[0].is_connected()) + + # Kill server2 + await self.server2.stop() + + self.assertFalse(await peers1[0].is_connected()) + self.assertFalse(await peers2[0].is_connected()) + + +if __name__ == "__main__": + asyncio.run(unittest.main()) diff --git a/build/lib/exo/networking/manual/test_network_topology_config.py b/build/lib/exo/networking/manual/test_network_topology_config.py new file mode 100644 index 00000000..b5b2fbd5 --- /dev/null +++ b/build/lib/exo/networking/manual/test_network_topology_config.py @@ -0,0 +1,49 @@ +import unittest + +from exo.networking.manual.network_topology_config import NetworkTopology + +root_path = "./exo/networking/manual/test_data/" + + +class TestNetworkTopologyConfig(unittest.TestCase): + def test_from_path_invalid_path(self): + with self.assertRaises(FileNotFoundError) as e: + NetworkTopology.from_path("invalid_path") + self.assertEqual(str(e.exception), "Config file not found at invalid_path") + + def test_from_path_invalid_json(self): + with self.assertRaises(ValueError) as e: + NetworkTopology.from_path(root_path + "invalid_json.json") + self.assertIn("Error validating network topology config from", str(e.exception)) + self.assertIn("1 validation error for NetworkTopology\n Invalid JSON: EOF while parsing a value at line 1 column 0", str(e.exception)) + + def test_from_path_invalid_config(self): + with self.assertRaises(ValueError) as e: + NetworkTopology.from_path(root_path + "invalid_config.json") + self.assertIn("Error validating network topology config from", str(e.exception)) + self.assertIn("port\n Field required", str(e.exception)) + + def test_from_path_valid(self): + config = NetworkTopology.from_path(root_path + "test_config.json") + + self.assertEqual(config.peers["node1"].port, 50051) + self.assertEqual(config.peers["node1"].device_capabilities.model, "Unknown Model") + self.assertEqual(config.peers["node1"].address, "localhost") + self.assertEqual(config.peers["node1"].device_capabilities.chip, "Unknown Chip") + self.assertEqual(config.peers["node1"].device_capabilities.memory, 0) + self.assertEqual(config.peers["node1"].device_capabilities.flops.fp32, 0) + self.assertEqual(config.peers["node1"].device_capabilities.flops.fp16, 0) + self.assertEqual(config.peers["node1"].device_capabilities.flops.int8, 0) + + self.assertEqual(config.peers["node2"].port, 50052) + self.assertEqual(config.peers["node2"].device_capabilities.model, "Unknown Model") + self.assertEqual(config.peers["node2"].address, "localhost") + self.assertEqual(config.peers["node2"].device_capabilities.chip, "Unknown Chip") + self.assertEqual(config.peers["node2"].device_capabilities.memory, 0) + self.assertEqual(config.peers["node2"].device_capabilities.flops.fp32, 0) + self.assertEqual(config.peers["node2"].device_capabilities.flops.fp16, 0) + self.assertEqual(config.peers["node2"].device_capabilities.flops.int8, 0) + + +if __name__ == "__main__": + unittest.main() diff --git a/build/lib/exo/networking/peer_handle.py b/build/lib/exo/networking/peer_handle.py new file mode 100644 index 00000000..e5085f0b --- /dev/null +++ b/build/lib/exo/networking/peer_handle.py @@ -0,0 +1,56 @@ +from abc import ABC, abstractmethod +from typing import Optional, Tuple, List +import numpy as np +from exo.inference.shard import Shard +from exo.topology.device_capabilities import DeviceCapabilities +from exo.topology.topology import Topology + + +class PeerHandle(ABC): + @abstractmethod + def id(self) -> str: + pass + + @abstractmethod + def addr(self) -> str: + pass + + @abstractmethod + def device_capabilities(self) -> DeviceCapabilities: + pass + + @abstractmethod + async def connect(self) -> None: + pass + + @abstractmethod + async def is_connected(self) -> bool: + pass + + @abstractmethod + async def disconnect(self) -> None: + pass + + @abstractmethod + async def health_check(self) -> bool: + pass + + @abstractmethod + async def send_prompt(self, shard: Shard, prompt: str, request_id: Optional[str] = None) -> Optional[np.array]: + pass + + @abstractmethod + async def send_tensor(self, shard: Shard, tensor: np.array, request_id: Optional[str] = None) -> Optional[np.array]: + pass + + @abstractmethod + async def send_result(self, request_id: str, result: List[int], is_finished: bool) -> None: + pass + + @abstractmethod + async def get_inference_result(self, request_id: str) -> Tuple[Optional[np.ndarray], bool]: + pass + + @abstractmethod + async def collect_topology(self, visited: set[str], max_depth: int) -> Topology: + pass diff --git a/build/lib/exo/networking/server.py b/build/lib/exo/networking/server.py new file mode 100644 index 00000000..8e7f9812 --- /dev/null +++ b/build/lib/exo/networking/server.py @@ -0,0 +1,11 @@ +from abc import ABC, abstractmethod + + +class Server(ABC): + @abstractmethod + async def start(self) -> None: + pass + + @abstractmethod + async def stop(self) -> None: + pass diff --git a/build/lib/exo/networking/tailscale/__init__.py b/build/lib/exo/networking/tailscale/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/networking/tailscale/tailscale_discovery.py b/build/lib/exo/networking/tailscale/tailscale_discovery.py new file mode 100644 index 00000000..a5f21d87 --- /dev/null +++ b/build/lib/exo/networking/tailscale/tailscale_discovery.py @@ -0,0 +1,178 @@ +import asyncio +import time +import traceback +from typing import List, Dict, Callable, Tuple +from exo.networking.discovery import Discovery +from exo.networking.peer_handle import PeerHandle +from exo.topology.device_capabilities import DeviceCapabilities, device_capabilities, UNKNOWN_DEVICE_CAPABILITIES +from exo.helpers import DEBUG, DEBUG_DISCOVERY +from .tailscale_helpers import get_device_id, update_device_attributes, get_device_attributes, get_tailscale_devices, Device + + +class TailscaleDiscovery(Discovery): + def __init__( + self, + node_id: str, + node_port: int, + create_peer_handle: Callable[[str, str, DeviceCapabilities], PeerHandle], + discovery_interval: int = 5, + discovery_timeout: int = 30, + update_interval: int = 15, + device_capabilities: DeviceCapabilities = UNKNOWN_DEVICE_CAPABILITIES, + tailscale_api_key: str = None, + tailnet: str = None, + allowed_node_ids: List[str] = None, + ): + self.node_id = node_id + self.node_port = node_port + self.create_peer_handle = create_peer_handle + self.discovery_interval = discovery_interval + self.discovery_timeout = discovery_timeout + self.update_interval = update_interval + self.device_capabilities = device_capabilities + self.known_peers: Dict[str, Tuple[PeerHandle, float, float]] = {} + self.discovery_task = None + self.cleanup_task = None + self.tailscale_api_key = tailscale_api_key + self.tailnet = tailnet + self.allowed_node_ids = allowed_node_ids + self._device_id = None + self.update_task = None + + async def start(self): + self.device_capabilities = device_capabilities() + self.discovery_task = asyncio.create_task(self.task_discover_peers()) + self.cleanup_task = asyncio.create_task(self.task_cleanup_peers()) + self.update_task = asyncio.create_task(self.task_update_device_posture_attributes()) + + async def task_update_device_posture_attributes(self): + while True: + try: + await self.update_device_posture_attributes() + if DEBUG_DISCOVERY >= 2: + print(f"Updated device posture attributes") + except Exception as e: + print(f"Error updating device posture attributes: {e}") + print(traceback.format_exc()) + finally: + await asyncio.sleep(self.update_interval) + + async def get_device_id(self): + if self._device_id: + return self._device_id + self._device_id = await get_device_id() + return self._device_id + + async def update_device_posture_attributes(self): + await update_device_attributes(await self.get_device_id(), self.tailscale_api_key, self.node_id, self.node_port, self.device_capabilities) + + async def task_discover_peers(self): + while True: + try: + devices: dict[str, Device] = await get_tailscale_devices(self.tailscale_api_key, self.tailnet) + current_time = time.time() + + active_devices = {name: device for name, device in devices.items() if device.last_seen is not None and (current_time - device.last_seen.timestamp()) < 30} + + if DEBUG_DISCOVERY >= 4: print(f"Found tailscale devices: {devices}") + if DEBUG_DISCOVERY >= 2: print(f"Active tailscale devices: {len(active_devices)}/{len(devices)}") + if DEBUG_DISCOVERY >= 2: print("Time since last seen tailscale devices", [(current_time - device.last_seen.timestamp()) for device in devices.values()]) + + for device in active_devices.values(): + if device.name == self.node_id: continue + peer_host = device.addresses[0] + peer_id, peer_port, device_capabilities = await get_device_attributes(device.device_id, self.tailscale_api_key) + if not peer_id: + if DEBUG_DISCOVERY >= 4: print(f"{device.device_id} does not have exo node attributes. skipping.") + continue + + if self.allowed_node_ids and peer_id not in self.allowed_node_ids: + if DEBUG_DISCOVERY >= 2: print(f"Ignoring peer {peer_id} as it's not in the allowed node IDs list") + continue + + if peer_id not in self.known_peers or self.known_peers[peer_id][0].addr() != f"{peer_host}:{peer_port}": + new_peer_handle = self.create_peer_handle(peer_id, f"{peer_host}:{peer_port}", device_capabilities) + if not await new_peer_handle.health_check(): + if DEBUG >= 1: print(f"Peer {peer_id} at {peer_host}:{peer_port} is not healthy. Skipping.") + continue + + if DEBUG >= 1: print(f"Adding {peer_id=} at {peer_host}:{peer_port}. Replace existing peer_id: {peer_id in self.known_peers}") + self.known_peers[peer_id] = ( + new_peer_handle, + current_time, + current_time, + ) + else: + if not await self.known_peers[peer_id][0].health_check(): + if DEBUG >= 1: print(f"Peer {peer_id} at {peer_host}:{peer_port} is not healthy. Removing.") + if peer_id in self.known_peers: del self.known_peers[peer_id] + continue + self.known_peers[peer_id] = (self.known_peers[peer_id][0], self.known_peers[peer_id][1], current_time) + + except Exception as e: + print(f"Error in discover peers: {e}") + print(traceback.format_exc()) + finally: + await asyncio.sleep(self.discovery_interval) + + async def stop(self): + if self.discovery_task: + self.discovery_task.cancel() + if self.cleanup_task: + self.cleanup_task.cancel() + if self.update_task: + self.update_task.cancel() + if self.discovery_task or self.cleanup_task or self.update_task: + await asyncio.gather(self.discovery_task, self.cleanup_task, self.update_task, return_exceptions=True) + + async def discover_peers(self, wait_for_peers: int = 0) -> List[PeerHandle]: + if wait_for_peers > 0: + while len(self.known_peers) < wait_for_peers: + if DEBUG_DISCOVERY >= 2: + print(f"Current peers: {len(self.known_peers)}/{wait_for_peers}. Waiting for more peers...") + await asyncio.sleep(0.1) + return [peer_handle for peer_handle, _, _ in self.known_peers.values()] + + async def task_cleanup_peers(self): + while True: + try: + current_time = time.time() + peers_to_remove = [] + + peer_ids = list(self.known_peers.keys()) + results = await asyncio.gather(*[self.check_peer(peer_id, current_time) for peer_id in peer_ids], return_exceptions=True) + + for peer_id, should_remove in zip(peer_ids, results): + if should_remove: peers_to_remove.append(peer_id) + + if DEBUG_DISCOVERY >= 2: + print( + "Peer statuses:", { + peer_handle.id(): f"is_connected={await peer_handle.is_connected()}, health_check={await peer_handle.health_check()}, connected_at={connected_at}, last_seen={last_seen}" + for peer_handle, connected_at, last_seen in self.known_peers.values() + } + ) + + for peer_id in peers_to_remove: + if peer_id in self.known_peers: + del self.known_peers[peer_id] + if DEBUG_DISCOVERY >= 2: print(f"Removed peer {peer_id} due to inactivity or failed health check.") + except Exception as e: + print(f"Error in cleanup peers: {e}") + print(traceback.format_exc()) + finally: + await asyncio.sleep(self.discovery_interval) + + async def check_peer(self, peer_id: str, current_time: float) -> bool: + peer_handle, connected_at, last_seen = self.known_peers.get(peer_id, (None, None, None)) + if peer_handle is None: return False + + try: + is_connected = await peer_handle.is_connected() + health_ok = await peer_handle.health_check() + except Exception as e: + if DEBUG_DISCOVERY >= 2: print(f"Error checking peer {peer_id}: {e}") + return True + + should_remove = ((not is_connected and current_time - connected_at > self.discovery_timeout) or (current_time - last_seen > self.discovery_timeout) or (not health_ok)) + return should_remove diff --git a/build/lib/exo/networking/tailscale/tailscale_helpers.py b/build/lib/exo/networking/tailscale/tailscale_helpers.py new file mode 100644 index 00000000..969a72da --- /dev/null +++ b/build/lib/exo/networking/tailscale/tailscale_helpers.py @@ -0,0 +1,125 @@ +import json +import asyncio +import aiohttp +import re +from typing import Dict, Any, Tuple, List, Optional +from exo.helpers import DEBUG_DISCOVERY +from exo.topology.device_capabilities import DeviceCapabilities, DeviceFlops +from datetime import datetime, timezone + + +class Device: + def __init__(self, device_id: str, name: str, addresses: List[str], last_seen: Optional[datetime] = None): + self.device_id = device_id + self.name = name + self.addresses = addresses + self.last_seen = last_seen + + @classmethod + def from_dict(cls, data: Dict[str, Any]) -> 'Device': + return cls(device_id=data.get('id', ''), name=data.get('name', ''), addresses=data.get('addresses', []), last_seen=cls.parse_datetime(data.get('lastSeen'))) + + @staticmethod + def parse_datetime(date_string: Optional[str]) -> Optional[datetime]: + if not date_string: + return None + return datetime.strptime(date_string, "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) + + +async def get_device_id() -> str: + try: + process = await asyncio.create_subprocess_exec('tailscale', 'status', '--json', stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE) + stdout, stderr = await process.communicate() + if process.returncode != 0: + raise Exception(f"Command failed with exit code {process.returncode}: {stderr.decode().strip()}.") + if DEBUG_DISCOVERY >= 4: print(f"tailscale status: {stdout.decode()}") + data = json.loads(stdout.decode()) + return data['Self']['ID'] + except Exception as e: + raise Exception(f"{str(e)} Do you have the tailscale cli installed? See: https://tailscale.com/kb/1080/cli") + + +async def update_device_attributes(device_id: str, api_key: str, node_id: str, node_port: int, device_capabilities: DeviceCapabilities): + async with aiohttp.ClientSession() as session: + base_url = f"https://api.tailscale.com/api/v2/device/{device_id}/attributes" + headers = {'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json'} + + attributes = { + "custom:exo_node_id": node_id.replace('-', '_'), "custom:exo_node_port": node_port, "custom:exo_device_capability_chip": sanitize_attribute(device_capabilities.chip), + "custom:exo_device_capability_model": sanitize_attribute(device_capabilities.model), "custom:exo_device_capability_memory": str(device_capabilities.memory), + "custom:exo_device_capability_flops_fp16": str(device_capabilities.flops.fp16), "custom:exo_device_capability_flops_fp32": str(device_capabilities.flops.fp32), + "custom:exo_device_capability_flops_int8": str(device_capabilities.flops.int8) + } + + for attr_name, attr_value in attributes.items(): + url = f"{base_url}/{attr_name}" + data = {"value": str(attr_value).replace(' ', '_')} # Ensure all values are strings for JSON + async with session.post(url, headers=headers, json=data) as response: + if response.status == 200: + if DEBUG_DISCOVERY >= 1: print(f"Updated device posture attribute {attr_name} for device {device_id}") + else: + print(f"Failed to update device posture attribute {attr_name}: {response.status} {await response.text()}") + + +async def get_device_attributes(device_id: str, api_key: str) -> Tuple[str, int, DeviceCapabilities]: + async with aiohttp.ClientSession() as session: + url = f"https://api.tailscale.com/api/v2/device/{device_id}/attributes" + headers = {'Authorization': f'Bearer {api_key}'} + async with session.get(url, headers=headers) as response: + if response.status == 200: + data = await response.json() + attributes = data.get("attributes", {}) + node_id = attributes.get("custom:exo_node_id", "").replace('_', '-') + node_port = int(attributes.get("custom:exo_node_port", 0)) + device_capabilities = DeviceCapabilities( + model=attributes.get("custom:exo_device_capability_model", "").replace('_', ' '), + chip=attributes.get("custom:exo_device_capability_chip", "").replace('_', ' '), + memory=int(attributes.get("custom:exo_device_capability_memory", 0)), + flops=DeviceFlops( + fp16=float(attributes.get("custom:exo_device_capability_flops_fp16", 0)), + fp32=float(attributes.get("custom:exo_device_capability_flops_fp32", 0)), + int8=float(attributes.get("custom:exo_device_capability_flops_int8", 0)) + ) + ) + return node_id, node_port, device_capabilities + else: + print(f"Failed to fetch posture attributes for {device_id}: {response.status}") + return "", 0, DeviceCapabilities(model="", chip="", memory=0, flops=DeviceFlops(fp16=0, fp32=0, int8=0)) + + +def parse_device_attributes(data: Dict[str, str]) -> Dict[str, Any]: + result = {} + prefix = "custom:exo_" + for key, value in data.items(): + if key.startswith(prefix): + attr_name = key.replace(prefix, "") + if attr_name in ["node_id", "node_port", "device_capability_chip", "device_capability_model"]: + result[attr_name] = value.replace('_', ' ') + elif attr_name in ["device_capability_memory", "device_capability_flops_fp16", "device_capability_flops_fp32", "device_capability_flops_int8"]: + result[attr_name] = float(value) + return result + + +def sanitize_attribute(value: str) -> str: + # Replace invalid characters with underscores + sanitized_value = re.sub(r'[^a-zA-Z0-9_.]', '_', value) + # Truncate to 50 characters + return sanitized_value[:50] + + +async def get_tailscale_devices(api_key: str, tailnet: str) -> Dict[str, Device]: + async with aiohttp.ClientSession() as session: + url = f"https://api.tailscale.com/api/v2/tailnet/{tailnet}/devices" + headers = {"Authorization": f"Bearer {api_key}"} + + async with session.get(url, headers=headers) as response: + response.raise_for_status() + data = await response.json() + + devices = {} + for device_data in data.get("devices", []): + print("Device data: ", device_data) + device = Device.from_dict(device_data) + devices[device.name] = device + + return devices diff --git a/build/lib/exo/networking/tailscale/test_tailscale_discovery.py b/build/lib/exo/networking/tailscale/test_tailscale_discovery.py new file mode 100644 index 00000000..a0dab5b3 --- /dev/null +++ b/build/lib/exo/networking/tailscale/test_tailscale_discovery.py @@ -0,0 +1,43 @@ +import os +import asyncio +import unittest +from unittest import mock +from exo.networking.tailscale.tailscale_discovery import TailscaleDiscovery +from exo.networking.peer_handle import PeerHandle + + +class TestTailscaleDiscovery(unittest.IsolatedAsyncioTestCase): + async def asyncSetUp(self): + self.tailscale_api_key = os.environ.get("TAILSCALE_API_KEY", "") + self.tailnet = os.environ.get("TAILSCALE_TAILNET", "") + self.discovery = TailscaleDiscovery( + node_id="test_node", + node_port=50051, + create_peer_handle=lambda peer_id, address, device_capabilities: unittest.mock.Mock(spec=PeerHandle, id=lambda: peer_id), + tailscale_api_key=self.tailscale_api_key, + tailnet=self.tailnet + ) + await self.discovery.start() + + async def asyncTearDown(self): + await self.discovery.stop() + + async def test_discovery(self): + # Wait for a short period to allow discovery to happen + await asyncio.sleep(15) + + # Get discovered peers + peers = await self.discovery.discover_peers() + + # Check if any peers were discovered + self.assertGreater(len(peers), 0, "No peers were discovered") + + # Print discovered peers for debugging + print(f"Discovered peers: {[peer.id() for peer in peers]}") + + # Check if discovered peers are instances of GRPCPeerHandle + print(peers) + + +if __name__ == '__main__': + unittest.main() diff --git a/build/lib/exo/networking/udp/__init__.py b/build/lib/exo/networking/udp/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/networking/udp/test_udp_discovery.py b/build/lib/exo/networking/udp/test_udp_discovery.py new file mode 100644 index 00000000..60ee0b96 --- /dev/null +++ b/build/lib/exo/networking/udp/test_udp_discovery.py @@ -0,0 +1,77 @@ +import asyncio +import unittest +from unittest import mock +from exo.networking.udp.udp_discovery import UDPDiscovery +from exo.networking.grpc.grpc_peer_handle import GRPCPeerHandle +from exo.networking.grpc.grpc_server import GRPCServer +from exo.orchestration.node import Node + + +class TestUDPDiscovery(unittest.IsolatedAsyncioTestCase): + async def asyncSetUp(self): + self.peer1 = mock.AsyncMock() + self.peer2 = mock.AsyncMock() + self.peer1.connect = mock.AsyncMock() + self.peer2.connect = mock.AsyncMock() + self.discovery1 = UDPDiscovery("discovery1", 50051, 5678, 5679, create_peer_handle=lambda peer_id, address, device_capabilities: self.peer1) + self.discovery2 = UDPDiscovery("discovery2", 50052, 5679, 5678, create_peer_handle=lambda peer_id, address, device_capabilities: self.peer2) + await self.discovery1.start() + await self.discovery2.start() + + async def asyncTearDown(self): + await self.discovery1.stop() + await self.discovery2.stop() + + async def test_discovery(self): + peers1 = await self.discovery1.discover_peers(wait_for_peers=1) + assert len(peers1) == 1 + peers2 = await self.discovery2.discover_peers(wait_for_peers=1) + assert len(peers2) == 1 + + # connect has to be explicitly called after discovery + self.peer1.connect.assert_not_called() + self.peer2.connect.assert_not_called() + + +class TestUDPDiscoveryWithGRPCPeerHandle(unittest.IsolatedAsyncioTestCase): + async def asyncSetUp(self): + self.node1 = mock.AsyncMock(spec=Node) + self.node2 = mock.AsyncMock(spec=Node) + self.server1 = GRPCServer(self.node1, "localhost", 50053) + self.server2 = GRPCServer(self.node2, "localhost", 50054) + await self.server1.start() + await self.server2.start() + self.discovery1 = UDPDiscovery("discovery1", 50053, 5678, 5679, lambda peer_id, address, device_capabilities: GRPCPeerHandle(peer_id, address, device_capabilities)) + self.discovery2 = UDPDiscovery("discovery2", 50054, 5679, 5678, lambda peer_id, address, device_capabilities: GRPCPeerHandle(peer_id, address, device_capabilities)) + await self.discovery1.start() + await self.discovery2.start() + + async def asyncTearDown(self): + await self.discovery1.stop() + await self.discovery2.stop() + await self.server1.stop() + await self.server2.stop() + + async def test_grpc_discovery(self): + peers1 = await self.discovery1.discover_peers(wait_for_peers=1) + assert len(peers1) == 1 + peers2 = await self.discovery2.discover_peers(wait_for_peers=1) + assert len(peers2) == 1 + assert not await peers1[0].is_connected() + assert not await peers2[0].is_connected() + + # Connect + await peers1[0].connect() + await peers2[0].connect() + assert await peers1[0].is_connected() + assert await peers2[0].is_connected() + + # Kill server1 + await self.server1.stop() + + assert await peers1[0].is_connected() + assert not await peers2[0].is_connected() + + +if __name__ == "__main__": + asyncio.run(unittest.main()) diff --git a/build/lib/exo/networking/udp/udp_discovery.py b/build/lib/exo/networking/udp/udp_discovery.py new file mode 100644 index 00000000..f24241be --- /dev/null +++ b/build/lib/exo/networking/udp/udp_discovery.py @@ -0,0 +1,215 @@ +import asyncio +import json +import socket +import time +import traceback +from typing import List, Dict, Callable, Tuple, Coroutine +from exo.networking.discovery import Discovery +from exo.networking.peer_handle import PeerHandle +from exo.topology.device_capabilities import DeviceCapabilities, device_capabilities, UNKNOWN_DEVICE_CAPABILITIES +from exo.helpers import DEBUG, DEBUG_DISCOVERY, get_all_ip_addresses + + +class ListenProtocol(asyncio.DatagramProtocol): + def __init__(self, on_message: Callable[[bytes, Tuple[str, int]], Coroutine]): + super().__init__() + self.on_message = on_message + self.loop = asyncio.get_event_loop() + + def connection_made(self, transport): + self.transport = transport + + def datagram_received(self, data, addr): + asyncio.create_task(self.on_message(data, addr)) + + +class BroadcastProtocol(asyncio.DatagramProtocol): + def __init__(self, message: str, broadcast_port: int): + self.message = message + self.broadcast_port = broadcast_port + + def connection_made(self, transport): + sock = transport.get_extra_info("socket") + sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) + transport.sendto(self.message.encode("utf-8"), ("", self.broadcast_port)) + + +class UDPDiscovery(Discovery): + def __init__( + self, + node_id: str, + node_port: int, + listen_port: int, + broadcast_port: int, + create_peer_handle: Callable[[str, str, DeviceCapabilities], PeerHandle], + broadcast_interval: int = 1, + discovery_timeout: int = 30, + device_capabilities: DeviceCapabilities = UNKNOWN_DEVICE_CAPABILITIES, + allowed_node_ids: List[str] = None, + ): + self.node_id = node_id + self.node_port = node_port + self.listen_port = listen_port + self.broadcast_port = broadcast_port + self.create_peer_handle = create_peer_handle + self.broadcast_interval = broadcast_interval + self.discovery_timeout = discovery_timeout + self.device_capabilities = device_capabilities + self.allowed_node_ids = allowed_node_ids + self.known_peers: Dict[str, Tuple[PeerHandle, float, float, int]] = {} + self.broadcast_task = None + self.listen_task = None + self.cleanup_task = None + + async def start(self): + self.device_capabilities = device_capabilities() + self.broadcast_task = asyncio.create_task(self.task_broadcast_presence()) + self.listen_task = asyncio.create_task(self.task_listen_for_peers()) + self.cleanup_task = asyncio.create_task(self.task_cleanup_peers()) + + async def stop(self): + if self.broadcast_task: self.broadcast_task.cancel() + if self.listen_task: self.listen_task.cancel() + if self.cleanup_task: self.cleanup_task.cancel() + if self.broadcast_task or self.listen_task or self.cleanup_task: + await asyncio.gather(self.broadcast_task, self.listen_task, self.cleanup_task, return_exceptions=True) + + async def discover_peers(self, wait_for_peers: int = 0) -> List[PeerHandle]: + if wait_for_peers > 0: + while len(self.known_peers) < wait_for_peers: + if DEBUG_DISCOVERY >= 2: print(f"Current peers: {len(self.known_peers)}/{wait_for_peers}. Waiting for more peers...") + await asyncio.sleep(0.1) + return [peer_handle for peer_handle, _, _, _ in self.known_peers.values()] + + async def task_broadcast_presence(self): + if DEBUG_DISCOVERY >= 2: print("Starting task_broadcast_presence...") + + while True: + # Explicitly broadcasting on all assigned ips since broadcasting on `0.0.0.0` on MacOS does not broadcast over + # the Thunderbolt bridge when other connection modalities exist such as WiFi or Ethernet + for addr in get_all_ip_addresses(): + message = json.dumps({ + "type": "discovery", + "node_id": self.node_id, + "grpc_port": self.node_port, + "device_capabilities": self.device_capabilities.to_dict(), + "priority": 1, # For now, every interface has the same priority. We can make this better by prioriting interfaces based on bandwidth, latency, and jitter e.g. prioritise Thunderbolt over WiFi. + }) + if DEBUG_DISCOVERY >= 3: print(f"Broadcasting presence at ({addr}): {message}") + + transport = None + try: + transport, _ = await asyncio.get_event_loop().create_datagram_endpoint(lambda: BroadcastProtocol(message, self.broadcast_port), local_addr=(addr, 0), family=socket.AF_INET) + if DEBUG_DISCOVERY >= 3: + print(f"Broadcasting presence at ({addr})") + except Exception as e: + print(f"Error in broadcast presence ({addr}): {e}") + finally: + if transport: + try: + transport.close() + except Exception as e: + if DEBUG_DISCOVERY >= 2: print(f"Error closing transport: {e}") + if DEBUG_DISCOVERY >= 2: traceback.print_exc() + await asyncio.sleep(self.broadcast_interval) + + async def on_listen_message(self, data, addr): + if not data: + return + + decoded_data = data.decode("utf-8", errors="ignore") + + # Check if the decoded data starts with a valid JSON character + if not (decoded_data.strip() and decoded_data.strip()[0] in "{["): + if DEBUG_DISCOVERY >= 2: print(f"Received invalid JSON data from {addr}: {decoded_data[:100]}") + return + + try: + decoder = json.JSONDecoder(strict=False) + message = decoder.decode(decoded_data) + except json.JSONDecodeError as e: + if DEBUG_DISCOVERY >= 2: print(f"Error decoding JSON data from {addr}: {e}") + return + + if DEBUG_DISCOVERY >= 2: print(f"received from peer {addr}: {message}") + + if message["type"] == "discovery" and message["node_id"] != self.node_id: + peer_id = message["node_id"] + + # Skip if peer_id is not in allowed list + if self.allowed_node_ids and peer_id not in self.allowed_node_ids: + if DEBUG_DISCOVERY >= 2: print(f"Ignoring peer {peer_id} as it's not in the allowed node IDs list") + return + + peer_host = addr[0] + peer_port = message["grpc_port"] + peer_prio = message["priority"] + device_capabilities = DeviceCapabilities(**message["device_capabilities"]) + + if peer_id not in self.known_peers or self.known_peers[peer_id][0].addr() != f"{peer_host}:{peer_port}": + if peer_id in self.known_peers: + existing_peer_prio = self.known_peers[peer_id][3] + if existing_peer_prio >= peer_prio: + if DEBUG >= 1: + print(f"Ignoring peer {peer_id} at {peer_host}:{peer_port} with priority {peer_prio} because we already know about a peer with higher or equal priority: {existing_peer_prio}") + return + new_peer_handle = self.create_peer_handle(peer_id, f"{peer_host}:{peer_port}", device_capabilities) + if not await new_peer_handle.health_check(): + if DEBUG >= 1: print(f"Peer {peer_id} at {peer_host}:{peer_port} is not healthy. Skipping.") + return + if DEBUG >= 1: print(f"Adding {peer_id=} at {peer_host}:{peer_port}. Replace existing peer_id: {peer_id in self.known_peers}") + self.known_peers[peer_id] = (new_peer_handle, time.time(), time.time(), peer_prio) + else: + if not await self.known_peers[peer_id][0].health_check(): + if DEBUG >= 1: print(f"Peer {peer_id} at {peer_host}:{peer_port} is not healthy. Removing.") + if peer_id in self.known_peers: del self.known_peers[peer_id] + return + if peer_id in self.known_peers: self.known_peers[peer_id] = (self.known_peers[peer_id][0], self.known_peers[peer_id][1], time.time(), peer_prio) + + async def task_listen_for_peers(self): + await asyncio.get_event_loop().create_datagram_endpoint(lambda: ListenProtocol(self.on_listen_message), local_addr=("0.0.0.0", self.listen_port)) + if DEBUG_DISCOVERY >= 2: print("Started listen task") + + async def task_cleanup_peers(self): + while True: + try: + current_time = time.time() + peers_to_remove = [] + + peer_ids = list(self.known_peers.keys()) + results = await asyncio.gather(*[self.check_peer(peer_id, current_time) for peer_id in peer_ids], return_exceptions=True) + + for peer_id, should_remove in zip(peer_ids, results): + if should_remove: peers_to_remove.append(peer_id) + + if DEBUG_DISCOVERY >= 2: + print( + "Peer statuses:", { + peer_handle.id(): f"is_connected={await peer_handle.is_connected()}, health_check={await peer_handle.health_check()}, connected_at={connected_at}, last_seen={last_seen}, prio={prio}" + for peer_handle, connected_at, last_seen, prio in self.known_peers.values() + } + ) + + for peer_id in peers_to_remove: + if peer_id in self.known_peers: + del self.known_peers[peer_id] + if DEBUG_DISCOVERY >= 2: print(f"Removed peer {peer_id} due to inactivity or failed health check.") + except Exception as e: + print(f"Error in cleanup peers: {e}") + print(traceback.format_exc()) + finally: + await asyncio.sleep(self.broadcast_interval) + + async def check_peer(self, peer_id: str, current_time: float) -> bool: + peer_handle, connected_at, last_seen, prio = self.known_peers.get(peer_id, (None, None, None, None)) + if peer_handle is None: return False + + try: + is_connected = await peer_handle.is_connected() + health_ok = await peer_handle.health_check() + except Exception as e: + if DEBUG_DISCOVERY >= 2: print(f"Error checking peer {peer_id}: {e}") + return True + + should_remove = ((not is_connected and current_time - connected_at > self.discovery_timeout) or (current_time - last_seen > self.discovery_timeout) or (not health_ok)) + return should_remove diff --git a/build/lib/exo/orchestration/__init__.py b/build/lib/exo/orchestration/__init__.py new file mode 100644 index 00000000..478af537 --- /dev/null +++ b/build/lib/exo/orchestration/__init__.py @@ -0,0 +1,4 @@ +from .node import Node +from .standard_node import StandardNode + +__all__ = ["Node", "StandardNode"] diff --git a/build/lib/exo/orchestration/node.py b/build/lib/exo/orchestration/node.py new file mode 100644 index 00000000..5fe117e1 --- /dev/null +++ b/build/lib/exo/orchestration/node.py @@ -0,0 +1,47 @@ +from typing import Optional, Tuple, List +import numpy as np +from abc import ABC, abstractmethod +from exo.helpers import AsyncCallbackSystem +from exo.inference.shard import Shard +from exo.topology.topology import Topology + + +class Node(ABC): + @abstractmethod + async def start(self, wait_for_peers: int = 0) -> None: + pass + + @abstractmethod + async def stop(self) -> None: + pass + + @abstractmethod + async def process_prompt(self, shard: Shard, prompt: str, request_id: Optional[str] = None, inference_state: Optional[dict] = None) -> Optional[np.ndarray]: + pass + + @abstractmethod + async def process_tensor(self, shard: Shard, tensor: np.ndarray, request_id: Optional[str] = None, inference_state: Optional[dict] = None) -> Optional[np.ndarray]: + pass + + @abstractmethod + async def get_inference_result(self, request_id: str) -> Tuple[Optional[np.ndarray], bool]: + pass + + @abstractmethod + async def collect_topology(self, visited: set[str] = set(), max_depth: int = 2) -> Topology: + pass + + @property + @abstractmethod + def current_topology(self) -> Topology: + pass + + @property + @abstractmethod + def on_token(self) -> AsyncCallbackSystem[str, Tuple[str, List[int], bool]]: + pass + + @property + @abstractmethod + def on_opaque_status(self) -> AsyncCallbackSystem[str, Tuple[str, str]]: + pass diff --git a/build/lib/exo/orchestration/standard_node.py b/build/lib/exo/orchestration/standard_node.py new file mode 100644 index 00000000..baf8216b --- /dev/null +++ b/build/lib/exo/orchestration/standard_node.py @@ -0,0 +1,488 @@ +import numpy as np +import json +import asyncio +import uuid +import time +import traceback +from typing import List, Dict, Optional, Tuple, Union, Set +from exo.networking import Discovery, PeerHandle, Server +from exo.inference.inference_engine import InferenceEngine, Shard +from .node import Node +from exo.topology.topology import Topology +from exo.topology.device_capabilities import device_capabilities +from exo.topology.partitioning_strategy import Partition, PartitioningStrategy, map_partitions_to_shards +from exo import DEBUG +from exo.helpers import AsyncCallbackSystem +from exo.viz.topology_viz import TopologyViz +from exo.download.hf.hf_helpers import RepoProgressEvent +from exo.inference.inference_engine import get_inference_engine, InferenceEngine +from exo.download.hf.hf_shard_download import HFShardDownloader + +class StandardNode(Node): + def __init__( + self, + _id: str, + server: Server, + inference_engine: InferenceEngine, + discovery: Discovery, + partitioning_strategy: PartitioningStrategy = None, + max_generate_tokens: int = 1024, + default_sample_temperature: float = 0.0, + topology_viz: Optional[TopologyViz] = None, + shard_downloader: Optional[HFShardDownloader] = None, + ): + self.id = _id + self.inference_engine = inference_engine + self.server = server + self.discovery = discovery + self.partitioning_strategy = partitioning_strategy + self.peers: List[PeerHandle] = {} + self.topology: Topology = Topology() + self.device_capabilities = device_capabilities() + self.buffered_token_output: Dict[str, Tuple[List[int], bool]] = {} + self.buffered_logits: Dict[str, List[np.ndarray]] = {} + self.buffered_inputs: Dict[str, List[np.ndarray]] = {} + self.max_generate_tokens = max_generate_tokens + self.topology_viz = topology_viz + self.default_sample_temperature = default_sample_temperature + self._on_token = AsyncCallbackSystem[str, Tuple[str, List[int], bool]]() + self._on_opaque_status = AsyncCallbackSystem[str, Tuple[str, str]]() + self._on_opaque_status.register("node_status").on_next(self.on_node_status) + self.node_download_progress: Dict[str, RepoProgressEvent] = {} + self.topology_inference_engines_pool: List[List[str]] = [] + self.shard_downloader = shard_downloader + + async def start(self, wait_for_peers: int = 0) -> None: + await self.server.start() + await self.discovery.start() + await self.update_peers(wait_for_peers) + await self.collect_topology() + if DEBUG >= 2: print(f"Collected topology: {self.topology}") + asyncio.create_task(self.periodic_topology_collection(1.0)) + + async def stop(self) -> None: + await self.discovery.stop() + await self.server.stop() + + def on_node_status(self, request_id, opaque_status): + try: + status_data = json.loads(opaque_status) + if status_data.get("type", "") == "supported_inference_engines": + node_id = status_data.get("node_id") + engines = status_data.get("engines", []) + self.topology_inference_engines_pool.append(engines) + if status_data.get("type", "") == "node_status": + if status_data.get("status", "").startswith("start_"): + self.current_topology.active_node_id = status_data.get("node_id") + elif status_data.get("status", "").startswith("end_"): + if status_data.get("node_id") == self.current_topology.active_node_id: + self.current_topology.active_node_id = None + download_progress = None + if status_data.get("type", "") == "download_progress": + if DEBUG >= 8: print(f"Download progress from {status_data.get('node_id')}: {status_data.get('progress')}") + download_progress = RepoProgressEvent.from_dict(status_data.get('progress')) + self.node_download_progress[status_data.get('node_id')] = download_progress + if self.topology_viz: + self.topology_viz.update_visualization(self.current_topology, self.partitioning_strategy.partition(self.current_topology), self.id, self.node_download_progress) + except Exception as e: + if DEBUG >= 1: print(f"Error updating visualization: {e}") + if DEBUG >= 1: traceback.print_exc() + + def get_supported_inference_engines(self): + supported_engine_names = [] + if self.inference_engine.__class__.__name__ == 'MLXDynamicShardInferenceEngine': + supported_engine_names.append('mlx') + supported_engine_names.append('tinygrad') + else: + supported_engine_names.append('tinygrad') + return supported_engine_names + + async def broadcast_supported_engines(self, supported_engines_names: List[str]): + status_message = json.dumps({"type": "supported_inference_engines", "node_id": self.id, "engines": supported_engines_names}) + await self.broadcast_opaque_status("", status_message) + + def get_topology_inference_engines(self) -> List[List[str]]: + return self.topology_inference_engines_pool + + async def process_inference_result( + self, + shard, + result: np.ndarray, + request_id: Optional[str] = None, + inference_state: Optional[dict] = None, + ): + if shard.model_id != 'stable-diffusion-2-1-base': + if request_id not in self.buffered_token_output: + self.buffered_token_output[request_id] = ([], False) + is_finished = len(self.buffered_token_output[request_id][0]) >= self.max_generate_tokens + if shard.is_last_layer() and not is_finished: + token = await self.inference_engine.sample(result, temp = self.default_sample_temperature) + self.buffered_token_output[request_id][0].append(token.item()) + intermediate_result = self.buffered_token_output[request_id][0] + if DEBUG >= 2: print(f"[{request_id}] result size: {result.size}, is finished: {is_finished}, buffered tokens: {len(self.buffered_token_output[request_id][0])}") + is_finished = token.item() == self.inference_engine.tokenizer.eos_token_id + forward = token.reshape(1, -1) + else: + forward = result + else: + await self.inference_engine.ensure_shard(shard) + is_finished = inference_state.get('is_finished', False) + intermediate_result, inference_state = self.handle_stable_diffusion(inference_state, result) + forward = result + if shard.is_last_layer(): + asyncio.create_task(self.broadcast_result(request_id, intermediate_result, is_finished)) + self.trigger_on_token_callbacks(request_id, intermediate_result, is_finished) + if is_finished: + if shard.model_id != 'stable-diffusion-2-1-base': + self.buffered_token_output[request_id] = (self.buffered_token_output[request_id][0], True) + intermediate_result = self.buffered_token_output[request_id][0] + else: + asyncio.create_task(self.forward_tensor(shard, forward, request_id, self.get_partition_index(offset = 1), inference_state)) + + return np.array(intermediate_result) + + async def process_prompt( + self, + base_shard: Shard, + prompt: str, + request_id: Optional[str] = None, + inference_state: Optional[dict] = {}, + ) -> Optional[np.ndarray]: + shard = self.get_current_shard(base_shard) + asyncio.create_task( + self.broadcast_opaque_status( + request_id, + json.dumps({ + "type": "node_status", + "node_id": self.id, + "status": "start_process_prompt", + "base_shard": base_shard.to_dict(), + "shard": shard.to_dict(), + "prompt": prompt, + "request_id": request_id, + }), + ) + ) + start_time = time.perf_counter_ns() + resp = await self._process_prompt(base_shard, prompt, request_id, inference_state) + end_time = time.perf_counter_ns() + elapsed_time_ns = end_time - start_time + asyncio.create_task( + self.broadcast_opaque_status( + request_id, + json.dumps({ + "type": "node_status", + "node_id": self.id, + "status": "end_process_prompt", + "base_shard": base_shard.to_dict(), + "shard": shard.to_dict(), + "prompt": prompt, + "request_id": request_id, + "elapsed_time_ns": elapsed_time_ns, + "result_size": resp.size if resp is not None else 0, + }), + ) + ) + return resp + + async def _process_prompt(self, base_shard: Shard, prompt: str, request_id: Optional[str] = None, inference_state: Optional[dict] = None) -> Optional[np.ndarray]: + if request_id is None: + request_id = str(uuid.uuid4()) + shard = self.get_current_shard(base_shard) + if DEBUG >= 2: print(f"[{request_id}] process prompt: {base_shard=} {shard=} {prompt=}") + if not shard.is_first_layer(): + if DEBUG >= 2: print(f"[{request_id}] forwarding to next shard: {base_shard=} {shard=} {prompt=}") + resp = await self.forward_prompt(shard, prompt, request_id, 0, inference_state) + return None + else: + result,inference_state = await self.inference_engine.infer_prompt(request_id, shard, prompt, inference_state) + ret = await self.process_inference_result(shard, result, request_id, inference_state) + return result + + async def process_tensor( + self, + base_shard: Shard, + tensor: np.ndarray, + request_id: Optional[str] = None, + inference_state: Optional[dict] = None, + ) -> Optional[np.ndarray]: + shard = self.get_current_shard(base_shard) + asyncio.create_task( + self.broadcast_opaque_status( + request_id, + json.dumps({ + "type": "node_status", + "node_id": self.id, + "status": "start_process_tensor", + "base_shard": base_shard.to_dict(), + "shard": shard.to_dict(), + "tensor_size": tensor.size, + "tensor_shape": tensor.shape, + "request_id": request_id, + }), + ) + ) + start_time = time.perf_counter_ns() + resp = await self._process_tensor(shard, tensor, request_id, inference_state) + end_time = time.perf_counter_ns() + elapsed_time_ns = end_time - start_time + asyncio.create_task( + self.broadcast_opaque_status( + request_id, + json.dumps({ + "type": "node_status", + "node_id": self.id, + "status": "end_process_tensor", + "base_shard": base_shard.to_dict(), + "shard": shard.to_dict(), + "request_id": request_id, + "elapsed_time_ns": elapsed_time_ns, + "result_size": resp.size if resp is not None else 0, + }), + ) + ) + return resp + + async def _process_tensor( + self, + base_shard: Shard, + tensor: np.ndarray, + request_id: Optional[str] = None, + inference_state: Optional[dict] = None, + ) -> Optional[np.ndarray]: + if request_id is None: + request_id = str(uuid.uuid4()) + shard = self.get_current_shard(base_shard) + + if DEBUG >= 1: print(f"[{request_id}] process_tensor: {tensor.size=} {tensor.shape=}") + try: + result, inference_state = await self.inference_engine.infer_tensor(request_id, shard, tensor, inference_state) + ret = await self.process_inference_result(shard, result, request_id, inference_state) + return ret + except Exception as e: + print(f"Error processing tensor for shard {shard}: {e}") + traceback.print_exc() + return None + + async def forward_prompt( + self, + base_shard: Shard, + prompt: str, + request_id: str, + target_index: int, + inference_state: Optional[dict] = None, + ) -> None: + if DEBUG >= 1: print(f"target partition index: {target_index}") + target_id = self.partitioning_strategy.partition(self.topology)[target_index].node_id + next_shard = self.get_current_shard(base_shard, target_index) + if DEBUG >= 2: print(f"Computed target from: {base_shard} {target_index}, {self.topology}. next shard: {next_shard}") + if target_id == self.id: + await self.process_prompt(next_shard, prompt, request_id) + else: + target_peer = next((p for p in self.peers if p.id() == target_id), None) + if not target_peer: + raise ValueError(f"Peer for {target_index} not found") + if DEBUG >= 1: print(f"Sending prompt to {target_peer.id()}: {prompt}") + await target_peer.send_prompt(next_shard, prompt, request_id=request_id, inference_state=inference_state) + + async def forward_tensor( + self, + base_shard: Shard, + tensor: np.ndarray, + request_id: str, + target_index: int, + inference_state: Optional[dict] = None, + ) -> None: + if DEBUG >= 1: print(f"target partition index: {target_index}") + target_id = self.partitioning_strategy.partition(self.topology)[target_index].node_id + next_shard = self.get_current_shard(base_shard, target_index) + if DEBUG >= 2: print(f"Computed target from: {base_shard} {target_index}, {self.topology}. target shard: {next_shard}") + if target_id == self.id: + await self.process_tensor(next_shard, tensor, request_id, inference_state) + else: + target_peer = next((p for p in self.peers if p.id() == target_id), None) + if not target_peer: + raise ValueError(f"Peer for {target_index} not found") + if DEBUG >= 1: print(f"Sending tensor to {target_peer.id()}: {tensor}") + await target_peer.send_tensor(next_shard, tensor, request_id=request_id, inference_state=inference_state) + + def get_partition_index(self, offset: int = 0): + if not self.partitioning_strategy: + if DEBUG >= 1: print("No partitioning strategy found. Skipping forward.") + return None + partitions = self.partitioning_strategy.partition(self.topology) + current_partition_index = next((i for i, p in enumerate(partitions) if p.node_id == self.id), None) + if current_partition_index is None: + raise ValueError(f"No current partition found for node: {self.id}") + return (current_partition_index + offset) % len(partitions) + + def get_current_shard(self, base_shard: Shard, index: Optional[int] = None) -> Shard: + if index is None: + index = self.get_partition_index() + partitions = self.partitioning_strategy.partition(self.topology) + shards = map_partitions_to_shards(partitions, base_shard.n_layers, base_shard.model_id) + return shards[index] + + async def update_peers(self, wait_for_peers: int = 0) -> bool: + next_peers = await self.discovery.discover_peers(wait_for_peers) + current_peer_ids = {peer.id() for peer in self.peers} + next_peer_ids = {peer.id() for peer in next_peers} + peers_added = [peer for peer in next_peers if peer.id() not in current_peer_ids] + peers_removed = [peer for peer in self.peers if peer.id() not in next_peer_ids] + peers_updated = [peer for peer in next_peers if peer.id() in current_peer_ids and any(p.addr() != peer.addr() for p in self.peers if p.id() == peer.id())] + peers_unchanged = [peer for peer in next_peers if peer.id() in current_peer_ids and all(p.addr() == peer.addr() for p in self.peers if p.id() == peer.id())] + peers_to_disconnect = [peer for peer in peers_removed if await peer.is_connected()] + peers_to_connect = [peer for peer in peers_added + peers_updated + peers_unchanged if not await peer.is_connected()] + + def _pretty(peers: List[PeerHandle]) -> List[str]: + return [f"{peer.id()}@{peer.addr()}" for peer in peers] + + if DEBUG >= 2: + print(f"update_peers: added={peers_added} removed={peers_removed} updated={peers_updated} unchanged={peers_unchanged} to_disconnect={peers_to_disconnect} to_connect={peers_to_connect}") + + async def disconnect_with_timeout(peer, timeout=5): + try: + await asyncio.wait_for(peer.disconnect(), timeout) + return True + except Exception as e: + print(f"Error disconnecting peer {peer.id()}@{peer.addr()}: {e}") + traceback.print_exc() + return False + + async def connect_with_timeout(peer, timeout=5): + try: + await asyncio.wait_for(peer.connect(), timeout) + return True + except Exception as e: + print(f"Error connecting peer {peer.id()}@{peer.addr()}: {e}") + traceback.print_exc() + return False + + disconnect_results = await asyncio.gather(*(disconnect_with_timeout(peer) for peer in peers_to_disconnect), return_exceptions=True) + connect_results = await asyncio.gather(*(connect_with_timeout(peer) for peer in peers_to_connect), return_exceptions=True) + + successful_disconnects = [peer for peer, result in zip(peers_to_disconnect, disconnect_results) if result is True] + failed_disconnects = [peer for peer, result in zip(peers_to_disconnect, disconnect_results) if result is False] + successful_connects = [peer for peer, result in zip(peers_to_connect, connect_results) if result is True] + failed_connects = [peer for peer, result in zip(peers_to_connect, connect_results) if result is False] + if DEBUG >= 1: + if successful_disconnects: print(f"Successfully disconnected peers: {_pretty(successful_disconnects)}") + if failed_disconnects: print(f"Failed to disconnect peers: {_pretty(failed_disconnects)}") + if successful_connects: print(f"Successfully connected peers: {_pretty(successful_connects)}") + if failed_connects: print(f"Failed to connect peers: {_pretty(failed_connects)}") + + self.peers = next_peers + return len(peers_added) > 0 or len(peers_removed) > 0 or len(peers_updated) > 0 + + async def select_best_inference_engine(self): + if self.inference_engine.__class__.__name__ == 'DummyInferenceEngine': return + supported_engines = self.get_supported_inference_engines() + await self.broadcast_supported_engines(supported_engines) + if len(self.get_topology_inference_engines()): + self.inference_engine = get_inference_engine(supported_engines[0], self.shard_downloader) + + async def periodic_topology_collection(self, interval: int): + while True: + await asyncio.sleep(interval) + try: + did_peers_change = await self.update_peers() + if DEBUG >= 2: print(f"{did_peers_change=}") + if did_peers_change: + await self.collect_topology() + await self.select_best_inference_engine() + except Exception as e: + print(f"Error collecting topology: {e}") + traceback.print_exc() + + async def get_inference_result(self, request_id: str) -> Tuple[Optional[np.ndarray], bool]: + if request_id not in self.buffered_token_output: + return None, False + return np.array(self.buffered_token_output[request_id][0]), self.buffered_token_output[request_id][1] + + async def collect_topology(self, visited: set[str] = set(), max_depth: int = 4) -> Topology: + next_topology = Topology() + next_topology.update_node(self.id, self.device_capabilities) + + if DEBUG >= 2: print(f"Collecting topology {max_depth=} {visited=}") + + prev_visited = visited.copy() + visited.add(self.id) + visited.update(p.id() for p in self.peers) + + for peer in self.peers: + next_topology.update_node(peer.id(), peer.device_capabilities()) + next_topology.add_edge(self.id, peer.id()) + + if peer.id() in prev_visited: + continue + + if max_depth <= 0: + if DEBUG >= 2: print("Max depth reached. Skipping...") + continue + + try: + other_topology = await asyncio.wait_for(peer.collect_topology(visited, max_depth=max_depth - 1), timeout=5.0) + if DEBUG >= 2: print(f"Collected topology from: {peer.id()}: {other_topology}") + self.topology.merge(other_topology) + except Exception as e: + print(f"Error collecting topology from {peer.id()}: {e}") + traceback.print_exc() + + next_topology.active_node_id = self.topology.active_node_id # this is not so clean. + self.topology = next_topology + if self.topology_viz: + self.topology_viz.update_visualization(self.current_topology, self.partitioning_strategy.partition(self.current_topology), self.id) + return next_topology + + @property + def on_token(self) -> AsyncCallbackSystem[str, Tuple[str, List[int], bool]]: + return self._on_token + + @property + def on_opaque_status(self) -> AsyncCallbackSystem[str, Tuple[str, str]]: + return self._on_opaque_status + + def trigger_on_token_callbacks(self, request_id: str, tokens: List[int], is_finished: bool) -> None: + if DEBUG >= 2: print(f"Triggering all on_token callbacks with {request_id=} num_tokens={len(tokens)} {is_finished=}") + self.on_token.trigger_all(request_id, tokens, is_finished) + + async def broadcast_result(self, request_id: str, result: List[int], is_finished: bool) -> None: + async def send_result_to_peer(peer): + try: + await asyncio.wait_for(peer.send_result(request_id, result, is_finished), timeout=15.0) + except asyncio.TimeoutError: + print(f"Timeout broadcasting result to {peer.id()}") + except Exception as e: + print(f"Error broadcasting result to {peer.id()}: {e}") + traceback.print_exc() + + await asyncio.gather(*[send_result_to_peer(peer) for peer in self.peers], return_exceptions=True) + + async def broadcast_opaque_status(self, request_id: str, status: str) -> None: + if DEBUG >= 8: print(f"Broadcasting opaque status: {request_id=} {status=}") + + async def send_status_to_peer(peer): + try: + await asyncio.wait_for(peer.send_opaque_status(request_id, status), timeout=15.0) + except asyncio.TimeoutError: + print(f"Timeout sending opaque status to {peer.id()}") + except Exception as e: + print(f"Error sending opaque status to {peer.id()}: {e}") + traceback.print_exc() + + await asyncio.gather(*[send_status_to_peer(peer) for peer in self.peers], return_exceptions=True) + # in the case of opaque status, we also want to receive our own opaque statuses + self.on_opaque_status.trigger_all(request_id, status) + + @property + def current_topology(self) -> Topology: + return self.topology + + def handle_stable_diffusion(self, inference_state, result): + if inference_state['is_step_finished']: + inference_state['step']+=1 + progress = [inference_state['step'],inference_state['total_steps']] + intermediate_result = result + if progress[0] == progress[1]: + intermediate_result = result + return intermediate_result, inference_state diff --git a/build/lib/exo/orchestration/test_node.py b/build/lib/exo/orchestration/test_node.py new file mode 100644 index 00000000..230ef0cf --- /dev/null +++ b/build/lib/exo/orchestration/test_node.py @@ -0,0 +1,57 @@ +import unittest +from unittest.mock import Mock, AsyncMock +import numpy as np + +from .standard_node import StandardNode +from exo.networking.peer_handle import PeerHandle + + +class TestNode(unittest.IsolatedAsyncioTestCase): + def setUp(self): + self.mock_inference_engine = AsyncMock() + self.mock_server = AsyncMock() + self.mock_server.start = AsyncMock() + self.mock_server.stop = AsyncMock() + self.mock_discovery = AsyncMock() + self.mock_discovery.start = AsyncMock() + self.mock_discovery.stop = AsyncMock() + mock_peer1 = Mock(spec=PeerHandle) + mock_peer1.id.return_value = "peer1" + mock_peer2 = Mock(spec=PeerHandle) + mock_peer2.id.return_value = "peer2" + self.mock_discovery.discover_peers = AsyncMock(return_value=[mock_peer1, mock_peer2]) + + self.node = StandardNode("test_node", self.mock_server, self.mock_inference_engine, "localhost", 50051, self.mock_discovery) + + async def asyncSetUp(self): + await self.node.start() + + async def asyncTearDown(self): + await self.node.stop() + + async def test_node_initialization(self): + self.assertEqual(self.node.node_id, "test_node") + self.assertEqual(self.node.host, "localhost") + self.assertEqual(self.node.port, 50051) + + async def test_node_start(self): + self.mock_server.start.assert_called_once_with("localhost", 50051) + + async def test_node_stop(self): + await self.node.stop() + self.mock_server.stop.assert_called_once() + + async def test_discover_and_connect_to_peers(self): + await self.node.discover_and_connect_to_peers() + self.assertEqual(len(self.node.peers), 2) + self.assertIn("peer1", map(lambda p: p.id(), self.node.peers)) + self.assertIn("peer2", map(lambda p: p.id(), self.node.peers)) + + async def test_process_tensor_calls_inference_engine(self): + mock_peer = Mock() + self.node.peers = [mock_peer] + + input_tensor = np.array([69, 1, 2]) + await self.node.process_tensor(input_tensor, None) + + self.node.inference_engine.process_shard.assert_called_once_with(input_tensor) diff --git a/build/lib/exo/stats/__init__.py b/build/lib/exo/stats/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/build/lib/exo/stats/metrics.py b/build/lib/exo/stats/metrics.py new file mode 100644 index 00000000..f29533ff --- /dev/null +++ b/build/lib/exo/stats/metrics.py @@ -0,0 +1,29 @@ +from exo.orchestration import Node +from prometheus_client import start_http_server, Counter, Histogram +import json + +# Create metrics to track time spent and requests made. +PROCESS_PROMPT_COUNTER = Counter("process_prompt_total", "Total number of prompts processed", ["node_id"]) +PROCESS_TENSOR_COUNTER = Counter("process_tensor_total", "Total number of tensors processed", ["node_id"]) +PROCESS_TENSOR_TIME = Histogram("process_tensor_seconds", "Time spent processing tensor", ["node_id"]) + + +def start_metrics_server(node: Node, port: int): + start_http_server(port) + + def _on_opaque_status(request_id, opaque_status: str): + status_data = json.loads(opaque_status) + _type = status_data.get("type", "") + node_id = status_data.get("node_id", "") + if _type != "node_status": + return + status = status_data.get("status", "") + + if status == "end_process_prompt": + PROCESS_PROMPT_COUNTER.labels(node_id=node_id).inc() + elif status == "end_process_tensor": + elapsed_time_ns = status_data.get("elapsed_time_ns", 0) + PROCESS_TENSOR_COUNTER.labels(node_id=node_id).inc() + PROCESS_TENSOR_TIME.labels(node_id=node_id).observe(elapsed_time_ns/1e9) # Convert ns to seconds + + node.on_opaque_status.register("stats").on_next(_on_opaque_status) diff --git a/build/lib/exo/test_callbacks.py b/build/lib/exo/test_callbacks.py new file mode 100644 index 00000000..c10083d6 --- /dev/null +++ b/build/lib/exo/test_callbacks.py @@ -0,0 +1,50 @@ +import asyncio +from typing import Any, Callable +from exo.helpers import AsyncCallbackSystem, AsyncCallback + + +# Usage example +async def main() -> None: + callback_system = AsyncCallbackSystem[str, Any]() + + # Register callbacks + callback1 = callback_system.register("callback1") + callback2 = callback_system.register("callback2") + + def on_next_callback(name: str) -> Callable[..., None]: + def callback(*args: Any) -> None: + print(f"{name} received values: {args}") + + return callback + + callback1.on_next(on_next_callback("Callback1")) + callback2.on_next(on_next_callback("Callback2")) + + async def wait_for_callback(name: str, callback: AsyncCallback[Any], condition: Callable[..., bool]) -> None: + try: + result = await callback.wait(condition, timeout=2) + print(f"{name} wait completed with result: {result}") + except asyncio.TimeoutError: + print(f"{name} wait timed out") + + # Trigger all callbacks at once + callback_system.trigger_all("Hello", 42, True) + + # Wait for all callbacks with different conditions + await asyncio.gather( + wait_for_callback("Callback1", callback1, lambda msg, num, flag: isinstance(msg, str) and num > 0), + wait_for_callback("Callback2", callback2, lambda msg, num, flag: flag is True), + ) + + # Trigger individual callback + callback_system.trigger("callback2", "World", -10, False) + + # Demonstrate timeout + new_callback = callback_system.register("new_callback") + new_callback.on_next(on_next_callback("NewCallback")) + await wait_for_callback("NewCallback", new_callback, lambda msg, num, flag: num > 100) + + callback_system.trigger("callback2", "World", 200, False) + + +asyncio.run(main()) diff --git a/build/lib/exo/tinychat/common.css b/build/lib/exo/tinychat/common.css new file mode 100644 index 00000000..e654d6a1 --- /dev/null +++ b/build/lib/exo/tinychat/common.css @@ -0,0 +1,130 @@ +/* make it responsive */ +@media(min-width: 852px) { + body { + font-size: 14px; + } +} +@media(max-width: 852px) { + body { + font-size: 12px; + } +} + +/* resets */ +html, body { + width: 100%; + height: 100%; +} + +*::-webkit-scrollbar { + display: none; +} + +* { + -ms-overflow-style: none; + scrollbar-width: none; +} + +* { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +/* default */ +body { + margin: 0; + background-color: var(--primary-bg-color); + color: var(--foreground-color); +} + +h1, h2, h3, h4, h5, h6 { + margin: 0em; +} + +hr { + width: 92%; +} + +button { + cursor: pointer; + border: none; + background-color: transparent; +} +button:hover { +} +button:active { +} + +/* components */ +.container { + margin: 0 auto; + padding: 1rem; +} + +.centered { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.centered-w-only { + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.centered-h-only { + position: absolute; + top: 50%; + transform: translateY(-50%); +} + +.card { + padding: 0; +} + +.card-header { + padding: 0.5rem 1rem; +} + +.card-container { + width: 96vw; + height: 100%; + gap: 1rem; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + align-items: center; +} + +.clean-a { + text-decoration: underline; + text-decoration-color: #006fc1; + text-decoration-thickness: 2px; + color: inherit; +} + +.hover-underline { + text-decoration: underline; + text-decoration-color: #228039; + text-decoration-thickness: 2px; + color: inherit; +} + +.flex-horizontal { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; +} + +.vertical-separator { + padding: 0 0.5rem; +} + +[x-cloak] { + display: none !important; +} diff --git a/build/lib/exo/tinychat/favicon.svg b/build/lib/exo/tinychat/favicon.svg new file mode 100644 index 00000000..420a33e0 --- /dev/null +++ b/build/lib/exo/tinychat/favicon.svg @@ -0,0 +1,25 @@ + + + + diff --git a/build/lib/exo/tinychat/index.css b/build/lib/exo/tinychat/index.css new file mode 100644 index 00000000..eb9669dd --- /dev/null +++ b/build/lib/exo/tinychat/index.css @@ -0,0 +1,484 @@ +/* define colors */ +:root { + --primary-color: #fff; + --secondary-color: #2a2a2a; + --secondary-color-transparent: #ffffff66; + --primary-bg-color: #1a1a1a; + --foreground-color: #f0f0f0; + --red-color: #a52e4d; +} + +main { + width: 100%; + height: 100%; + + display: flex; + flex-direction: column; + + place-items: center; +} + +.home { + width: 100%; + height: 90%; + + margin-bottom: 10rem; +} + +.title { + font-size: 3rem; + margin: 1rem 0; + margin-top: 3rem; +} + +.histories-container-container { + width: 100%; + max-height: 75%; + + position: relative; +} + +.histories-container { + overflow-y: auto; + overflow-x: hidden; + width: 100%; + height: 100%; + + display: flex; + flex-direction: column; + gap: 1rem; + align-items: center; + + margin: 0; + padding: 3rem 1rem; +} + +.histories-start { + height: 3rem; + width: 100%; + + z-index: 999; + top: 0; + position: absolute; + + background: linear-gradient( + 180deg, + var(--primary-bg-color) 0%, + transparent 100% + ); +} +.histories-end { + height: 3rem; + width: 100%; + + z-index: 999; + bottom: 0; + position: absolute; + + background: linear-gradient( + 0deg, + var(--primary-bg-color) 0%, + transparent 100% + ); +} + +.history { + padding: 1rem; + width: 100%; + max-width: 40rem; + + background-color: var(--secondary-color); + border-radius: 10px; + border-left: 2px solid var(--primary-color); + + cursor: pointer; + + transform: translateX(calc(1px * var(--tx, 0))); + opacity: var(--opacity, 1); +} +.history:hover { + background-color: var(--secondary-color); +} + +.history-delete-button { + position: absolute; + top: 0; + right: 0; + padding: 0.5rem; + margin: 0; + outline: none; + border: none; + background-color: var(--secondary-color); + color: var(--foreground-color); + border-radius: 0 0 0 10px; + cursor: pointer; + transition: 0.2s; +} +.history-delete-button:hover { + background-color: var(--secondary-color); + padding: 0.75rem; +} + +.messages { + overflow-y: auto; + height: 100%; + width: 100%; + max-width: 1200px; + + display: flex; + flex-direction: column; + gap: 1rem; + align-items: center; + padding-top: 1rem; + padding-bottom: 11rem; +} + +.message { + max-width: 75%; + padding: 0.5rem 1rem; + border-radius: 20px; +} +.message-role-assistant { + background-color: var(--secondary-color); + margin-right: auto; + color: #fff; +} +.message-role-user { + margin-left: auto; + background-color: var(--primary-color); + color: #000; +} +.download-progress { + margin-bottom: 12em; + overflow-y: auto; + min-height: 350px; + padding: 2rem; +} +.message > pre { + white-space: pre-wrap; +} + +.progress-bar-container { + width: 100%; + background-color: #e0e0e0; + border-radius: 4px; + margin: 10px 0; +} +.progress-bar { + height: 20px; + border-radius: 4px; + transition: width 0.5s ease-in-out; +} +.progress-bar.complete { + background-color: #4CAF50; +} +.progress-bar.in-progress { + background-color: #2196F3; +} + +.toast { + width: 100%; + background-color: #fc2a2a; + color: #fff; + text-align: left; + border-radius: 2px; + padding: 16px; + position: fixed; + z-index: 9999; + top: 0; + left: 0; + right: 0; + display: flex; + flex-direction: column; + white-space: pre-wrap; + font-family: monospace; +} + +.toast-header { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; +} + +.toast-error-message { + flex-grow: 1; +} + +.toast-header-buttons { + display: flex; + align-items: center; + gap: 16px; + margin-left: 24px; +} + +.toast-expand-button { + background: none; + border: none; + color: white; + padding: 4px; + cursor: pointer; + font-size: 1em; +} + +.toast-close-button { + background: none; + border: none; + color: white; + padding: 4px; + cursor: pointer; + font-size: 1.2em; + line-height: 1; +} + +.toast-expand-button:hover, +.toast-close-button:hover { + opacity: 0.8; +} + +.toast-content { + margin-top: 10px; + padding: 10px; + background-color: rgba(0, 0, 0, 0.2); + border-radius: 4px; +} + +.hljs { + width: 100%; + position: relative; + border-radius: 10px; + /* wrap code blocks */ + white-space: pre-wrap; +} +/* put clipboard button in the top right corner of the code block */ +.clipboard-button { + position: absolute; + top: 0; + right: 0; + padding: 0.5rem; + margin: 0; + outline: none; + border: none; + background-color: var(--secondary-color); + color: var(--foreground-color); + border-radius: 0 0 0 10px; + cursor: pointer; + transition: 0.2s; +} +.clipboard-button:hover { + background-color: var(--secondary-color); + padding: 0.75rem; +} + +.input-container { + position: absolute; + bottom: 0; + + /* linear gradient from background-color to transparent on the top */ + background: linear-gradient( + 0deg, + var(--primary-bg-color) 55%, + transparent 100% + ); + + width: 100%; + max-width: 1200px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + z-index: 999; +} + +.input-performance { + margin-top: 4rem; + + display: flex; + flex-direction: row; + gap: 1rem; +} + +.input-performance-point { + display: flex; + flex-direction: row; + place-items: center; + gap: 0.5rem; +} +.input-performance-point > p { + height: 1rem; + line-height: normal; +} + +.input { + width: 90%; + min-height: 3rem; + flex-shrink: 0; + + display: flex; + flex-direction: row; + justify-content: center; + gap: 0.5rem; + + align-items: flex-end; + margin-bottom: 2rem; +} + +.input-form { + width: 100%; + padding: 1rem; + min-height: 3rem; + max-height: 8rem; + + background-color: var(--secondary-color); + color: var(--foreground-color); + border-radius: 10px; + border: none; + resize: none; + outline: none; +} + +.input-button { + height: 3rem; + width: 4rem; + + background-color: var(--primary-color); + color: var(--secondary-color); + border-radius: 10px; + padding: 0.5rem; + cursor: pointer; +} +.input-button:hover { + background-color: var(--secondary-color-transparent); +} +.input-button:disabled { + background-color: var(--secondary-color); + cursor: not-allowed; +} + +/* wrap text */ +p { + white-space: pre-wrap; +} + +/* fonts */ +.megrim-regular { + font-family: "Megrim", system-ui; + font-weight: 400; + font-style: normal; +} + +.monospace { + font-family: monospace; +} + +.model-selector { + display: flex; + justify-content: center; + padding: 20px 0; +} +.model-selector select { + padding: 10px 20px; + font-size: 16px; + border: 1px solid #ccc; + border-radius: 5px; + background-color: #f8f8f8; + cursor: pointer; +} +.model-selector select:focus { + outline: none; + border-color: #007bff; + box-shadow: 0 0 0 2px rgba(0,123,255,.25); +} + +/* Image upload button styles */ +.image-input-button { + background-color: var(--secondary-color); + color: var(--foreground-color); + border: none; + border-radius: 50%; + width: 40px; + height: 40px; + font-size: 18px; + cursor: pointer; + transition: all 0.3s ease; + display: flex; + align-items: center; + justify-content: center; + margin-right: 10px; +} + +.image-input-button:hover { + background-color: var(--secondary-color-transparent); + transform: scale(1.1); +} + +.image-input-button:focus { + outline: none; + box-shadow: 0 0 0 3px rgba(var(--secondary-color-rgb), 0.5); +} + +.image-input-button i { + transition: all 0.3s ease; +} + +.image-input-button:hover i { + transform: scale(1.2); +} + +/* Hidden file input styles */ +#image-upload { + display: none; +} + +.image-preview-container { + position: relative; + display: inline-block; + margin-right: 10px; +} + +.image-preview { + max-width: 100px; + max-height: 100px; + object-fit: cover; + border-radius: 5px; +} + +.remove-image-button { + position: absolute; + top: -5px; + right: -5px; + background-color: rgba(255, 255, 255, 0.8); + border: none; + border-radius: 50%; + padding: 2px 5px; + cursor: pointer; +} + +.message > p > img { + max-width: 100%; + max-height: 100%; + object-fit: contain; +} + +.clear-history-button { + background-color: var(--red-color); + color: white; + padding: 10px 20px; + border-radius: 5px; + display: flex; + align-items: center; + gap: 8px; + transition: all 0.3s ease; + margin: 1rem auto; + border: none; + cursor: pointer; +} + +.clear-history-button:hover { + opacity: 0.8; + transform: scale(1.05); +} + +.clear-history-button i { + font-size: 14px; +} \ No newline at end of file diff --git a/build/lib/exo/tinychat/index.html b/build/lib/exo/tinychat/index.html new file mode 100644 index 00000000..3ae855f4 --- /dev/null +++ b/build/lib/exo/tinychat/index.html @@ -0,0 +1,255 @@ + + + +tinychat + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +
+
+
+ +
+
+
+ +
+
+

tinychat

+ +
+ +
+ +
+ +
+
+
+
+ + + + + +
+
+ +

+

SEC TO FIRST TOKEN

+
+ +

+

TOKENS/SEC

+
+ +

+

TOKENS

+
+
+
+ + +
+Uploaded Image + +
+ + +
+
+
+ diff --git a/build/lib/exo/tinychat/index.js b/build/lib/exo/tinychat/index.js new file mode 100644 index 00000000..c839d3d7 --- /dev/null +++ b/build/lib/exo/tinychat/index.js @@ -0,0 +1,687 @@ +document.addEventListener("alpine:init", () => { + Alpine.data("state", () => ({ + // current state + cstate: { + time: null, + messages: [], + selectedModel: 'llama-3.2-1b', + }, + + // historical state + histories: JSON.parse(localStorage.getItem("histories")) || [], + + home: 0, + generating: false, + endpoint: `${window.location.origin}/v1`, + errorMessage: null, + errorExpanded: false, + errorTimeout: null, + + // performance tracking + time_till_first: 0, + tokens_per_second: 0, + total_tokens: 0, + + // image handling + imagePreview: null, + + // download progress + downloadProgress: null, + downloadProgressInterval: null, // To keep track of the polling interval + + // Pending message storage + pendingMessage: null, + + init() { + // Clean up any pending messages + localStorage.removeItem("pendingMessage"); + + // Start polling for download progress + this.startDownloadProgressPolling(); + }, + + removeHistory(cstate) { + const index = this.histories.findIndex((state) => { + return state.time === cstate.time; + }); + if (index !== -1) { + this.histories.splice(index, 1); + localStorage.setItem("histories", JSON.stringify(this.histories)); + } + }, + + clearAllHistory() { + this.histories = []; + localStorage.setItem("histories", JSON.stringify([])); + }, + + // Utility functions + formatBytes(bytes) { + if (bytes === 0) return '0 B'; + const k = 1024; + const sizes = ['B', 'KB', 'MB', 'GB', 'TB']; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; + }, + + formatDuration(seconds) { + if (seconds === null || seconds === undefined || isNaN(seconds)) return ''; + const h = Math.floor(seconds / 3600); + const m = Math.floor((seconds % 3600) / 60); + const s = Math.floor(seconds % 60); + if (h > 0) return `${h}h ${m}m ${s}s`; + if (m > 0) return `${m}m ${s}s`; + return `${s}s`; + }, + + async populateSelector() { + try { + const response = await fetch(`${window.location.origin}/modelpool`); + const responseText = await response.text(); // Get raw response text first + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + // Try to parse the response text + let responseJson; + try { + responseJson = JSON.parse(responseText); + } catch (parseError) { + console.error('Failed to parse JSON:', parseError); + throw new Error(`Invalid JSON response: ${responseText}`); + } + + const sel = document.querySelector(".model-select"); + if (!sel) { + throw new Error("Could not find model selector element"); + } + + // Clear the current options and add new ones + sel.innerHTML = ''; + + const modelDict = responseJson["model pool"]; + if (!modelDict) { + throw new Error("Response missing 'model pool' property"); + } + + Object.entries(modelDict).forEach(([key, value]) => { + const opt = document.createElement("option"); + opt.value = key; + opt.textContent = value; + sel.appendChild(opt); + }); + + // Set initial value to the first model + const firstKey = Object.keys(modelDict)[0]; + if (firstKey) { + sel.value = firstKey; + this.cstate.selectedModel = firstKey; + } + } catch (error) { + console.error("Error populating model selector:", error); + this.errorMessage = `Failed to load models: ${error.message}`; + } + }, + + async handleImageUpload(event) { + const file = event.target.files[0]; + if (file) { + const reader = new FileReader(); + reader.onload = (e) => { + this.imagePreview = e.target.result; + this.imageUrl = e.target.result; // Store the image URL + // Add image preview to the chat + this.cstate.messages.push({ + role: "user", + content: `![Uploaded Image](${this.imagePreview})`, + }); + }; + reader.readAsDataURL(file); + } + }, + + + async handleSend() { + try { + const el = document.getElementById("input-form"); + const value = el.value.trim(); + if (!value && !this.imagePreview) return; + + if (this.generating) return; + this.generating = true; + if (this.home === 0) this.home = 1; + + // ensure that going back in history will go back to home + window.history.pushState({}, "", "/"); + + // add message to list + if (value) { + this.cstate.messages.push({ role: "user", content: value }); + } + + // clear textarea + el.value = ""; + el.style.height = "auto"; + el.style.height = el.scrollHeight + "px"; + + localStorage.setItem("pendingMessage", value); + this.processMessage(value); + } catch (error) { + console.error('error', error); + const errorDetails = { + message: error.message || 'Unknown error', + stack: error.stack, + name: error.name || 'Error' + }; + + this.errorMessage = { + basic: `${errorDetails.name}: ${errorDetails.message}`, + stack: errorDetails.stack + }; + + // Clear any existing timeout + if (this.errorTimeout) { + clearTimeout(this.errorTimeout); + } + + // Only set the timeout if the error details aren't expanded + if (!this.errorExpanded) { + this.errorTimeout = setTimeout(() => { + this.errorMessage = null; + this.errorExpanded = false; + }, 30 * 1000); + } + this.generating = false; + } + }, + + async processMessage(value) { + try { + // reset performance tracking + const prefill_start = Date.now(); + let start_time = 0; + let tokens = 0; + this.tokens_per_second = 0; + + // prepare messages for API request + let apiMessages = this.cstate.messages.map(msg => { + if (msg.content.startsWith('![Uploaded Image]')) { + return { + role: "user", + content: [ + { + type: "image_url", + image_url: { + url: this.imageUrl + } + }, + { + type: "text", + text: value // Use the actual text the user typed + } + ] + }; + } else { + return { + role: msg.role, + content: msg.content + }; + } + }); + + if (this.cstate.selectedModel === "stable-diffusion-2-1-base") { + // Send a request to the image generation endpoint + console.log(apiMessages[apiMessages.length - 1].content) + console.log(this.cstate.selectedModel) + console.log(this.endpoint) + const response = await fetch(`${this.endpoint}/image/generations`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + "model": 'stable-diffusion-2-1-base', + "prompt": apiMessages[apiMessages.length - 1].content, + "image_url": this.imageUrl + }), + }); + + if (!response.ok) { + throw new Error("Failed to fetch"); + } + const reader = response.body.getReader(); + let done = false; + let gottenFirstChunk = false; + + while (!done) { + const { value, done: readerDone } = await reader.read(); + done = readerDone; + const decoder = new TextDecoder(); + + if (value) { + // Assume non-binary data (text) comes first + const chunk = decoder.decode(value, { stream: true }); + const parsed = JSON.parse(chunk); + console.log(parsed) + + if (parsed.progress) { + if (!gottenFirstChunk) { + this.cstate.messages.push({ role: "assistant", content: "" }); + gottenFirstChunk = true; + } + this.cstate.messages[this.cstate.messages.length - 1].content = parsed.progress; + } + else if (parsed.images) { + if (!gottenFirstChunk) { + this.cstate.messages.push({ role: "assistant", content: "" }); + gottenFirstChunk = true; + } + const imageUrl = parsed.images[0].url; + console.log(imageUrl) + this.cstate.messages[this.cstate.messages.length - 1].content = `![Generated Image](${imageUrl}?t=${Date.now()})`; + } + } + } + } + + else{ + const containsImage = apiMessages.some(msg => Array.isArray(msg.content) && msg.content.some(item => item.type === 'image_url')); + if (containsImage) { + // Map all messages with string content to object with type text + apiMessages = apiMessages.map(msg => { + if (typeof msg.content === 'string') { + return { + ...msg, + content: [ + { + type: "text", + text: msg.content + } + ] + }; + } + return msg; + }); + } + + console.log(apiMessages) + //start receiving server sent events + let gottenFirstChunk = false; + for await ( + const chunk of this.openaiChatCompletion(this.cstate.selectedModel, apiMessages) + ) { + if (!gottenFirstChunk) { + this.cstate.messages.push({ role: "assistant", content: "" }); + gottenFirstChunk = true; + } + + // add chunk to the last message + this.cstate.messages[this.cstate.messages.length - 1].content += chunk; + + // calculate performance tracking + tokens += 1; + this.total_tokens += 1; + if (start_time === 0) { + start_time = Date.now(); + this.time_till_first = start_time - prefill_start; + } else { + const diff = Date.now() - start_time; + if (diff > 0) { + this.tokens_per_second = tokens / (diff / 1000); + } + } + } + } + // Clean the cstate before adding it to histories + const cleanedCstate = JSON.parse(JSON.stringify(this.cstate)); + cleanedCstate.messages = cleanedCstate.messages.map(msg => { + if (Array.isArray(msg.content)) { + return { + ...msg, + content: msg.content.map(item => + item.type === 'image_url' ? { type: 'image_url', image_url: { url: '[IMAGE_PLACEHOLDER]' } } : item + ) + }; + } + return msg; + }); + + // Update the state in histories or add it if it doesn't exist + const index = this.histories.findIndex((cstate) => cstate.time === cleanedCstate.time); + cleanedCstate.time = Date.now(); + if (index !== -1) { + // Update the existing entry + this.histories[index] = cleanedCstate; + } else { + // Add a new entry + this.histories.push(cleanedCstate); + } + console.log(this.histories) + // update in local storage + try { + localStorage.setItem("histories", JSON.stringify(this.histories)); + } catch (error) { + console.error("Failed to save histories to localStorage:", error); + } + } catch (error) { + console.error('error', error); + const errorDetails = { + message: error.message || 'Unknown error', + stack: error.stack, + name: error.name || 'Error' + }; + + this.errorMessage = { + basic: `${errorDetails.name}: ${errorDetails.message}`, + stack: errorDetails.stack + }; + + // Clear any existing timeout + if (this.errorTimeout) { + clearTimeout(this.errorTimeout); + } + + // Only set the timeout if the error details aren't expanded + if (!this.errorExpanded) { + this.errorTimeout = setTimeout(() => { + this.errorMessage = null; + this.errorExpanded = false; + }, 30 * 1000); + } + } finally { + this.generating = false; + } + }, + + async handleEnter(event) { + // if shift is not pressed + if (!event.shiftKey) { + event.preventDefault(); + await this.handleSend(); + } + }, + + updateTotalTokens(messages) { + fetch(`${this.endpoint}/chat/token/encode`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ messages }), + }).then((response) => response.json()).then((data) => { + this.total_tokens = data.length; + }).catch(console.error); + }, + + async *openaiChatCompletion(model, messages) { + // stream response + console.log("model", model) + const response = await fetch(`${this.endpoint}/chat/completions`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + "model": model, + "messages": messages, + "stream": true, + }), + }); + if (!response.ok) { + const errorResBody = await response.json() + if (errorResBody?.detail) { + throw new Error(`Failed to fetch completions: ${errorResBody.detail}`); + } else { + throw new Error("Failed to fetch completions: Unknown error"); + } + } + + const reader = response.body.pipeThrough(new TextDecoderStream()) + .pipeThrough(new EventSourceParserStream()).getReader(); + while (true) { + const { done, value } = await reader.read(); + if (done) { + break; + } + if (value.type === "event") { + const json = JSON.parse(value.data); + if (json.choices) { + const choice = json.choices[0]; + if (choice.finish_reason === "stop") { + break; + } + yield choice.delta.content; + } + } + } + }, + + async fetchDownloadProgress() { + try { + const response = await fetch(`${this.endpoint}/download/progress`); + if (response.ok) { + const data = await response.json(); + const progressArray = Object.values(data); + if (progressArray.length > 0) { + this.downloadProgress = progressArray.map(progress => { + // Check if download is complete + if (progress.status === "complete") { + return { + ...progress, + isComplete: true, + percentage: 100 + }; + } else if (progress.status === "failed") { + return { + ...progress, + isComplete: false, + errorMessage: "Download failed" + }; + } else { + return { + ...progress, + isComplete: false, + downloaded_bytes_display: this.formatBytes(progress.downloaded_bytes), + total_bytes_display: this.formatBytes(progress.total_bytes), + overall_speed_display: progress.overall_speed ? this.formatBytes(progress.overall_speed) + '/s' : '', + overall_eta_display: progress.overall_eta ? this.formatDuration(progress.overall_eta) : '', + percentage: ((progress.downloaded_bytes / progress.total_bytes) * 100).toFixed(2) + }; + } + }); + const allComplete = this.downloadProgress.every(progress => progress.isComplete); + if (allComplete) { + // Check for pendingMessage + const savedMessage = localStorage.getItem("pendingMessage"); + if (savedMessage) { + // Clear pendingMessage + localStorage.removeItem("pendingMessage"); + // Call processMessage() with savedMessage + if (this.lastErrorMessage) { + await this.processMessage(savedMessage); + } + } + this.lastErrorMessage = null; + this.downloadProgress = null; + } + } else { + // No ongoing download + this.downloadProgress = null; + } + } + } catch (error) { + console.error("Error fetching download progress:", error); + this.downloadProgress = null; + } + }, + + startDownloadProgressPolling() { + if (this.downloadProgressInterval) { + // Already polling + return; + } + this.fetchDownloadProgress(); // Fetch immediately + this.downloadProgressInterval = setInterval(() => { + this.fetchDownloadProgress(); + }, 1000); // Poll every second + }, + })); +}); + +const { markedHighlight } = globalThis.markedHighlight; +marked.use(markedHighlight({ + langPrefix: "hljs language-", + highlight(code, lang, _info) { + const language = hljs.getLanguage(lang) ? lang : "plaintext"; + return hljs.highlight(code, { language }).value; + }, +})); + +// **** eventsource-parser **** +class EventSourceParserStream extends TransformStream { + constructor() { + let parser; + + super({ + start(controller) { + parser = createParser((event) => { + if (event.type === "event") { + controller.enqueue(event); + } + }); + }, + + transform(chunk) { + parser.feed(chunk); + }, + }); + } +} + +function createParser(onParse) { + let isFirstChunk; + let buffer; + let startingPosition; + let startingFieldLength; + let eventId; + let eventName; + let data; + reset(); + return { + feed, + reset, + }; + function reset() { + isFirstChunk = true; + buffer = ""; + startingPosition = 0; + startingFieldLength = -1; + eventId = void 0; + eventName = void 0; + data = ""; + } + function feed(chunk) { + buffer = buffer ? buffer + chunk : chunk; + if (isFirstChunk && hasBom(buffer)) { + buffer = buffer.slice(BOM.length); + } + isFirstChunk = false; + const length = buffer.length; + let position = 0; + let discardTrailingNewline = false; + while (position < length) { + if (discardTrailingNewline) { + if (buffer[position] === "\n") { + ++position; + } + discardTrailingNewline = false; + } + let lineLength = -1; + let fieldLength = startingFieldLength; + let character; + for ( + let index = startingPosition; + lineLength < 0 && index < length; + ++index + ) { + character = buffer[index]; + if (character === ":" && fieldLength < 0) { + fieldLength = index - position; + } else if (character === "\r") { + discardTrailingNewline = true; + lineLength = index - position; + } else if (character === "\n") { + lineLength = index - position; + } + } + if (lineLength < 0) { + startingPosition = length - position; + startingFieldLength = fieldLength; + break; + } else { + startingPosition = 0; + startingFieldLength = -1; + } + parseEventStreamLine(buffer, position, fieldLength, lineLength); + position += lineLength + 1; + } + if (position === length) { + buffer = ""; + } else if (position > 0) { + buffer = buffer.slice(position); + } + } + function parseEventStreamLine(lineBuffer, index, fieldLength, lineLength) { + if (lineLength === 0) { + if (data.length > 0) { + onParse({ + type: "event", + id: eventId, + event: eventName || void 0, + data: data.slice(0, -1), + // remove trailing newline + }); + + data = ""; + eventId = void 0; + } + eventName = void 0; + return; + } + const noValue = fieldLength < 0; + const field = lineBuffer.slice( + index, + index + (noValue ? lineLength : fieldLength), + ); + let step = 0; + if (noValue) { + step = lineLength; + } else if (lineBuffer[index + fieldLength + 1] === " ") { + step = fieldLength + 2; + } else { + step = fieldLength + 1; + } + const position = index + step; + const valueLength = lineLength - step; + const value = lineBuffer.slice(position, position + valueLength).toString(); + if (field === "data") { + data += value ? "".concat(value, "\n") : "\n"; + } else if (field === "event") { + eventName = value; + } else if (field === "id" && !value.includes("\0")) { + eventId = value; + } else if (field === "retry") { + const retry = parseInt(value, 10); + if (!Number.isNaN(retry)) { + onParse({ + type: "reconnect-interval", + value: retry, + }); + } + } + } +} + +const BOM = [239, 187, 191]; +function hasBom(buffer) { + return BOM.every((charCode, index) => buffer.charCodeAt(index) === charCode); +} diff --git a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpine-collective/toolkit@1.0.2/dist/cdn.min.js b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpine-collective/toolkit@1.0.2/dist/cdn.min.js new file mode 100644 index 00000000..a363545c --- /dev/null +++ b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpine-collective/toolkit@1.0.2/dist/cdn.min.js @@ -0,0 +1 @@ +(()=>{var H=Object.create,v=Object.defineProperty,N=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty,z=Object.getOwnPropertyNames,q=Object.getOwnPropertyDescriptor;var W=n=>v(n,"__esModule",{value:!0});var D=(n,e)=>()=>(e||(e={exports:{}},n(e.exports,e)),e.exports);var F=(n,e,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of z(e))!V.call(n,r)&&r!=="default"&&v(n,r,{get:()=>e[r],enumerable:!(o=q(e,r))||o.enumerable});return n},U=n=>F(W(v(n!=null?H(N(n)):{},"default",n&&n.__esModule&&"default"in n?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n);var I=D((E,w)=>{(function(){"use strict";function n(){var e=window,o=document;if("scrollBehavior"in o.documentElement.style&&e.__forceSmoothScrollPolyfill__!==!0)return;var r=e.HTMLElement||e.Element,i=468,f={scroll:e.scroll||e.scrollTo,scrollBy:e.scrollBy,elementScroll:r.prototype.scroll||b,scrollIntoView:r.prototype.scrollIntoView},u=e.performance&&e.performance.now?e.performance.now.bind(e.performance):Date.now;function c(t){var l=["MSIE ","Trident/","Edge/"];return new RegExp(l.join("|")).test(t)}var g=c(e.navigator.userAgent)?1:0;function b(t,l){this.scrollLeft=t,this.scrollTop=l}function M(t){return .5*(1-Math.cos(Math.PI*t))}function m(t){if(t===null||typeof t!="object"||t.behavior===void 0||t.behavior==="auto"||t.behavior==="instant")return!0;if(typeof t=="object"&&t.behavior==="smooth")return!1;throw new TypeError("behavior member of ScrollOptions "+t.behavior+" is not a valid value for enumeration ScrollBehavior.")}function O(t,l){if(l==="Y")return t.clientHeight+g1?1:a,s=M(a),d=t.startX+(t.x-t.startX)*s,p=t.startY+(t.y-t.startY)*s,t.method.call(t.scrollable,d,p),(d!==t.x||p!==t.y)&&e.requestAnimationFrame(S.bind(e,t))}function h(t,l,s){var d,p,a,y,_=u();t===o.body?(d=e,p=e.scrollX||e.pageXOffset,a=e.scrollY||e.pageYOffset,y=f.scroll):(d=t,p=t.scrollLeft,a=t.scrollTop,y=b),S({scrollable:d,method:y,startTime:_,startX:p,startY:a,x:l,y:s})}e.scroll=e.scrollTo=function(){if(arguments[0]!==void 0){if(m(arguments[0])===!0){f.scroll.call(e,arguments[0].left!==void 0?arguments[0].left:typeof arguments[0]!="object"?arguments[0]:e.scrollX||e.pageXOffset,arguments[0].top!==void 0?arguments[0].top:arguments[1]!==void 0?arguments[1]:e.scrollY||e.pageYOffset);return}h.call(e,o.body,arguments[0].left!==void 0?~~arguments[0].left:e.scrollX||e.pageXOffset,arguments[0].top!==void 0?~~arguments[0].top:e.scrollY||e.pageYOffset)}},e.scrollBy=function(){if(arguments[0]!==void 0){if(m(arguments[0])){f.scrollBy.call(e,arguments[0].left!==void 0?arguments[0].left:typeof arguments[0]!="object"?arguments[0]:0,arguments[0].top!==void 0?arguments[0].top:arguments[1]!==void 0?arguments[1]:0);return}h.call(e,o.body,~~arguments[0].left+(e.scrollX||e.pageXOffset),~~arguments[0].top+(e.scrollY||e.pageYOffset))}},r.prototype.scroll=r.prototype.scrollTo=function(){if(arguments[0]!==void 0){if(m(arguments[0])===!0){if(typeof arguments[0]=="number"&&arguments[1]===void 0)throw new SyntaxError("Value could not be converted");f.elementScroll.call(this,arguments[0].left!==void 0?~~arguments[0].left:typeof arguments[0]!="object"?~~arguments[0]:this.scrollLeft,arguments[0].top!==void 0?~~arguments[0].top:arguments[1]!==void 0?~~arguments[1]:this.scrollTop);return}var t=arguments[0].left,l=arguments[0].top;h.call(this,this,typeof t=="undefined"?this.scrollLeft:~~t,typeof l=="undefined"?this.scrollTop:~~l)}},r.prototype.scrollBy=function(){if(arguments[0]!==void 0){if(m(arguments[0])===!0){f.elementScroll.call(this,arguments[0].left!==void 0?~~arguments[0].left+this.scrollLeft:~~arguments[0]+this.scrollLeft,arguments[0].top!==void 0?~~arguments[0].top+this.scrollTop:~~arguments[1]+this.scrollTop);return}this.scroll({left:~~arguments[0].left+this.scrollLeft,top:~~arguments[0].top+this.scrollTop,behavior:arguments[0].behavior})}},r.prototype.scrollIntoView=function(){if(m(arguments[0])===!0){f.scrollIntoView.call(this,arguments[0]===void 0?!0:arguments[0]);return}var t=$(this),l=t.getBoundingClientRect(),s=this.getBoundingClientRect();t!==o.body?(h.call(this,t,t.scrollLeft+s.left-l.left,t.scrollTop+s.top-l.top),e.getComputedStyle(t).position!=="fixed"&&e.scrollBy({left:l.left,top:l.top,behavior:"smooth"})):e.scrollBy({left:s.left,top:s.top,behavior:"smooth"})}}typeof E=="object"&&typeof w!="undefined"?w.exports={polyfill:n}:n()})()});function j(n){n.magic("range",()=>function(e,o,r=1){typeof o=="undefined"&&(o=e,e=e?1:0);let i=e>o;i&&([e,o]=[o,e]);let f=Array.from({length:(o-e)/r+1},(u,c)=>e+c*r);return i?f.reverse():f})}var Y=U(I());function X(n){Y.default.polyfill(),n.magic("scroll",()=>function(e,o={}){let r=e,i=o.offset?parseInt(o.offset,10):0;if(delete o.offset,typeof e=="string"&&/^[0-9]+?/g.test(e)&&(e=parseInt(e,10)),typeof e=="string"&&(e=document.querySelector(e)),e instanceof Element&&(e=Math.floor(e.getBoundingClientRect().top+window.pageYOffset)),Number.isInteger(e)&&(e={top:e-i,behavior:"smooth"}),typeof e!="object")throw Error("Unsupported $scroll target: ",r);Object.assign(e,o),window.scroll(e)})}function B(n){let e=(o,r)=>{if(r[0].length<=o.length)return o;let i="\u2026";return typeof r[2]!="undefined"&&(i=r[2]),Object.prototype.hasOwnProperty.call(r[1],"ellipsis")&&(i=r[1].ellipsis),o+i};n.magic("truncate",()=>function(...o){return typeof o[0]!="string"||!o[1]?o[0]:typeof o[1]!="object"?e(o[0].slice(0,o[1]),o):Object.prototype.hasOwnProperty.call(o[1],"words")&&o[1].words?e(o[0].split(" ").splice(0,o[1].words).join(" "),o):Object.prototype.hasOwnProperty.call(o[1],"characters")&&o[1].characters?e(o[0].slice(0,o[1].characters),o):o[0]})}function L(n){n.magic("dbg",e=>function(...o){let r=o.map(i=>n.raw(i));console.log(...r)})}function x(n){let e=n.reactive({screensize:window.innerWidth}),o={xs:0,sm:640,md:768,lg:1024,xl:1280,"2xl":1536},r=window.AlpineMagicHelpersConfig&&window.AlpineMagicHelpersConfig.breakpoints?window.AlpineMagicHelpersConfig.breakpoints:o,i;window.addEventListener("resize",()=>{clearTimeout(i),i=setTimeout(()=>{e.screensize=window.innerWidth},150)}),n.magic("screen",f=>u=>{let c=e.screensize;if(Number.isInteger(u))return u<=c;if(r[u]===void 0)throw Error("Undefined $screen property: "+u+". Supported properties: "+Object.keys(r).join(", "));return r[u]<=c})}function P(n){n.magic("interval",()=>function(...e){if(typeof e[0]!="function")return e[0];let o=e[1],r=0,i=!1;typeof e[1]=="object"&&(Object.prototype.hasOwnProperty.call(e[1],"timer")&&(o=e[1].timer),Object.prototype.hasOwnProperty.call(e[1],"delay")&&(r=e[1].delay),Object.prototype.hasOwnProperty.call(e[1],"forceInterval")&&(i=e[1].forceInterval));let f=null,u=!0,c=()=>{let g=u?o+r:o;u=!1,f=setTimeout(()=>{e[0].call(this),i?c():requestAnimationFrame(c)},g)};n.effect(()=>{this.autoIntervalTest==null||this.autoIntervalTest?i?c():requestAnimationFrame(c):clearTimeout(f)})})}function C(n){j(n),X(n),B(n),L(n),x(n),P(n)}document.addEventListener("alpine:initializing",()=>{C(window.Alpine)});})(); diff --git a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js new file mode 100644 index 00000000..5a2d18be --- /dev/null +++ b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js @@ -0,0 +1,15 @@ +(()=>{var _=["input","select","textarea","a[href]","button","[tabindex]:not(slot)","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details"],k=_.join(","),K=typeof Element>"u",N=K?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,B=!K&&Element.prototype.getRootNode?function(i){return i.getRootNode()}:function(i){return i.ownerDocument},V=function(e,t,a){var n=Array.prototype.slice.apply(e.querySelectorAll(k));return t&&N.call(e,k)&&n.unshift(e),n=n.filter(a),n},$=function i(e,t,a){for(var n=[],r=Array.from(e);r.length;){var s=r.shift();if(s.tagName==="SLOT"){var l=s.assignedElements(),m=l.length?l:s.children,p=i(m,!0,a);a.flatten?n.push.apply(n,p):n.push({scope:s,candidates:p})}else{var v=N.call(s,k);v&&a.filter(s)&&(t||!e.includes(s))&&n.push(s);var h=s.shadowRoot||typeof a.getShadowRoot=="function"&&a.getShadowRoot(s),y=!a.shadowRootFilter||a.shadowRootFilter(s);if(h&&y){var w=i(h===!0?s.children:h.children,!0,a);a.flatten?n.push.apply(n,w):n.push({scope:s,candidates:w})}else r.unshift.apply(r,s.children)}}return n},Y=function(e,t){return e.tabIndex<0&&(t||/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||e.isContentEditable)&&isNaN(parseInt(e.getAttribute("tabindex"),10))?0:e.tabIndex},se=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},Z=function(e){return e.tagName==="INPUT"},ce=function(e){return Z(e)&&e.type==="hidden"},le=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(a){return a.tagName==="SUMMARY"});return t},fe=function(e,t){for(var a=0;asummary:first-of-type"),s=r?e.parentElement:e;if(N.call(s,"details:not([open]) *"))return!0;var l=B(e).host,m=l?.ownerDocument.contains(l)||e.ownerDocument.contains(e);if(!a||a==="full"){if(typeof n=="function"){for(var p=e;e;){var v=e.parentElement,h=B(e);if(v&&!v.shadowRoot&&n(v)===!0)return W(e);e.assignedSlot?e=e.assignedSlot:!v&&h!==e.ownerDocument?e=h.host:e=v}e=p}if(m)return!e.getClientRects().length}else if(a==="non-zero-area")return W(e);return!1},pe=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var a=0;a=0)},me=function i(e){var t=[],a=[];return e.forEach(function(n,r){var s=!!n.scope,l=s?n.scope:n,m=Y(l,s),p=s?i(n.candidates):l;m===0?s?t.push.apply(t,p):t.push(l):a.push({documentOrder:r,tabIndex:m,item:n,isScope:s,content:p})}),a.sort(se).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},z=function(e,t){t=t||{};var a;return t.getShadowRoot?a=$([e],t.includeContainer,{filter:G.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:ge}):a=V(e,t.includeContainer,G.bind(null,t)),me(a)},x=function(e,t){t=t||{};var a;return t.getShadowRoot?a=$([e],t.includeContainer,{filter:I.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):a=V(e,t.includeContainer,I.bind(null,t)),a},A=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return N.call(e,k)===!1?!1:G(t,e)},ye=_.concat("iframe").join(","),R=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return N.call(e,ye)===!1?!1:I(t,e)};function Q(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(i);e&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(i,n).enumerable})),t.push.apply(t,a)}return t}function X(i){for(var e=1;e0){var a=i[i.length-1];a!==t&&a.pause()}var n=i.indexOf(t);n===-1||i.splice(n,1),i.push(t)},deactivateTrap:function(t){var a=i.indexOf(t);a!==-1&&i.splice(a,1),i.length>0&&i[i.length-1].unpause()}}}(),Te=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},Fe=function(e){return e.key==="Escape"||e.key==="Esc"||e.keyCode===27},Se=function(e){return e.key==="Tab"||e.keyCode===9},ee=function(e){return setTimeout(e,0)},te=function(e,t){var a=-1;return e.every(function(n,r){return t(n)?(a=r,!1):!0}),a},O=function(e){for(var t=arguments.length,a=new Array(t>1?t-1:0),n=1;n1?c-1:0),f=1;f=0)o=a.activeElement;else{var u=r.tabbableGroups[0],c=u&&u.firstTabbableNode;o=c||p("fallbackFocus")}if(!o)throw new Error("Your focus-trap needs to have at least one focusable element");return o},h=function(){if(r.containerGroups=r.containers.map(function(o){var u=z(o,n.tabbableOptions),c=x(o,n.tabbableOptions);return{container:o,tabbableNodes:u,focusableNodes:c,firstTabbableNode:u.length>0?u[0]:null,lastTabbableNode:u.length>0?u[u.length-1]:null,nextTabbableNode:function(f){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,F=c.findIndex(function(E){return E===f});if(!(F<0))return g?c.slice(F+1).find(function(E){return A(E,n.tabbableOptions)}):c.slice(0,F).reverse().find(function(E){return A(E,n.tabbableOptions)})}}}),r.tabbableGroups=r.containerGroups.filter(function(o){return o.tabbableNodes.length>0}),r.tabbableGroups.length<=0&&!p("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times")},y=function d(o){if(o!==!1&&o!==a.activeElement){if(!o||!o.focus){d(v());return}o.focus({preventScroll:!!n.preventScroll}),r.mostRecentlyFocusedNode=o,Te(o)&&o.select()}},w=function(o){var u=p("setReturnFocus",o);return u||(u===!1?!1:o)},S=function(o){var u=L(o);if(!(m(u)>=0)){if(O(n.clickOutsideDeactivates,o)){s.deactivate({returnFocus:n.returnFocusOnDeactivate&&!R(u,n.tabbableOptions)});return}O(n.allowOutsideClick,o)||o.preventDefault()}},D=function(o){var u=L(o),c=m(u)>=0;c||u instanceof Document?c&&(r.mostRecentlyFocusedNode=u):(o.stopImmediatePropagation(),y(r.mostRecentlyFocusedNode||v()))},T=function(o){var u=L(o);h();var c=null;if(r.tabbableGroups.length>0){var b=m(u),f=b>=0?r.containerGroups[b]:void 0;if(b<0)o.shiftKey?c=r.tabbableGroups[r.tabbableGroups.length-1].lastTabbableNode:c=r.tabbableGroups[0].firstTabbableNode;else if(o.shiftKey){var g=te(r.tabbableGroups,function(P){var j=P.firstTabbableNode;return u===j});if(g<0&&(f.container===u||R(u,n.tabbableOptions)&&!A(u,n.tabbableOptions)&&!f.nextTabbableNode(u,!1))&&(g=b),g>=0){var F=g===0?r.tabbableGroups.length-1:g-1,E=r.tabbableGroups[F];c=E.lastTabbableNode}}else{var C=te(r.tabbableGroups,function(P){var j=P.lastTabbableNode;return u===j});if(C<0&&(f.container===u||R(u,n.tabbableOptions)&&!A(u,n.tabbableOptions)&&!f.nextTabbableNode(u))&&(C=b),C>=0){var oe=C===r.tabbableGroups.length-1?0:C+1,ue=r.tabbableGroups[oe];c=ue.firstTabbableNode}}}else c=p("fallbackFocus");c&&(o.preventDefault(),y(c))},M=function(o){if(Fe(o)&&O(n.escapeDeactivates,o)!==!1){o.preventDefault(),s.deactivate();return}if(Se(o)){T(o);return}},q=function(o){var u=L(o);m(u)>=0||O(n.clickOutsideDeactivates,o)||O(n.allowOutsideClick,o)||(o.preventDefault(),o.stopImmediatePropagation())},H=function(){if(r.active)return J.activateTrap(s),r.delayInitialFocusTimer=n.delayInitialFocus?ee(function(){y(v())}):y(v()),a.addEventListener("focusin",D,!0),a.addEventListener("mousedown",S,{capture:!0,passive:!1}),a.addEventListener("touchstart",S,{capture:!0,passive:!1}),a.addEventListener("click",q,{capture:!0,passive:!1}),a.addEventListener("keydown",M,{capture:!0,passive:!1}),s},U=function(){if(r.active)return a.removeEventListener("focusin",D,!0),a.removeEventListener("mousedown",S,!0),a.removeEventListener("touchstart",S,!0),a.removeEventListener("click",q,!0),a.removeEventListener("keydown",M,!0),s};return s={get active(){return r.active},get paused(){return r.paused},activate:function(o){if(r.active)return this;var u=l(o,"onActivate"),c=l(o,"onPostActivate"),b=l(o,"checkCanFocusTrap");b||h(),r.active=!0,r.paused=!1,r.nodeFocusedBeforeActivation=a.activeElement,u&&u();var f=function(){b&&h(),H(),c&&c()};return b?(b(r.containers.concat()).then(f,f),this):(f(),this)},deactivate:function(o){if(!r.active)return this;var u=X({onDeactivate:n.onDeactivate,onPostDeactivate:n.onPostDeactivate,checkCanReturnFocus:n.checkCanReturnFocus},o);clearTimeout(r.delayInitialFocusTimer),r.delayInitialFocusTimer=void 0,U(),r.active=!1,r.paused=!1,J.deactivateTrap(s);var c=l(u,"onDeactivate"),b=l(u,"onPostDeactivate"),f=l(u,"checkCanReturnFocus"),g=l(u,"returnFocus","returnFocusOnDeactivate");c&&c();var F=function(){ee(function(){g&&y(w(r.nodeFocusedBeforeActivation)),b&&b()})};return g&&f?(f(w(r.nodeFocusedBeforeActivation)).then(F,F),this):(F(),this)},pause:function(){return r.paused||!r.active?this:(r.paused=!0,U(),this)},unpause:function(){return!r.paused||!r.active?this:(r.paused=!1,h(),H(),this)},updateContainerElements:function(o){var u=[].concat(o).filter(Boolean);return r.containers=u.map(function(c){return typeof c=="string"?a.querySelector(c):c}),r.active&&h(),this}},s.updateContainerElements(e),s};function ne(i){let e,t;window.addEventListener("focusin",()=>{e=t,t=document.activeElement}),i.magic("focus",a=>{let n=a;return{__noscroll:!1,__wrapAround:!1,within(r){return n=r,this},withoutScrolling(){return this.__noscroll=!0,this},noscroll(){return this.__noscroll=!0,this},withWrapAround(){return this.__wrapAround=!0,this},wrap(){return this.withWrapAround()},focusable(r){return R(r)},previouslyFocused(){return e},lastFocused(){return e},focused(){return t},focusables(){return Array.isArray(n)?n:x(n,{displayCheck:"none"})},all(){return this.focusables()},isFirst(r){let s=this.all();return s[0]&&s[0].isSameNode(r)},isLast(r){let s=this.all();return s.length&&s.slice(-1)[0].isSameNode(r)},getFirst(){return this.all()[0]},getLast(){return this.all().slice(-1)[0]},getNext(){let r=this.all(),s=document.activeElement;if(r.indexOf(s)!==-1)return this.__wrapAround&&r.indexOf(s)===r.length-1?r[0]:r[r.indexOf(s)+1]},getPrevious(){let r=this.all(),s=document.activeElement;if(r.indexOf(s)!==-1)return this.__wrapAround&&r.indexOf(s)===0?r.slice(-1)[0]:r[r.indexOf(s)-1]},first(){this.focus(this.getFirst())},last(){this.focus(this.getLast())},next(){this.focus(this.getNext())},previous(){this.focus(this.getPrevious())},prev(){return this.previous()},focus(r){r&&setTimeout(()=>{r.hasAttribute("tabindex")||r.setAttribute("tabindex","0"),r.focus({preventScroll:this.__noscroll})})}}}),i.directive("trap",i.skipDuringClone((a,{expression:n,modifiers:r},{effect:s,evaluateLater:l,cleanup:m})=>{let p=l(n),v=!1,h={escapeDeactivates:!1,allowOutsideClick:!0,fallbackFocus:()=>a};if(r.includes("noautofocus"))h.initialFocus=!1;else{let T=a.querySelector("[autofocus]");T&&(h.initialFocus=T)}let y=re(a,h),w=()=>{},S=()=>{},D=()=>{w(),w=()=>{},S(),S=()=>{},y.deactivate({returnFocus:!r.includes("noreturn")})};s(()=>p(T=>{v!==T&&(T&&!v&&(r.includes("noscroll")&&(S=Ee()),r.includes("inert")&&(w=ae(a)),setTimeout(()=>{y.activate()},15)),!T&&v&&D(),v=!!T)})),m(D)},(a,{expression:n,modifiers:r},{evaluate:s})=>{r.includes("inert")&&s(n)&&ae(a)}))}function ae(i){let e=[];return ie(i,t=>{let a=t.hasAttribute("aria-hidden");t.setAttribute("aria-hidden","true"),e.push(()=>a||t.removeAttribute("aria-hidden"))}),()=>{for(;e.length;)e.pop()()}}function ie(i,e){i.isSameNode(document.body)||!i.parentNode||Array.from(i.parentNode.children).forEach(t=>{t.isSameNode(i)?ie(i.parentNode,e):e(t)})}function Ee(){let i=document.documentElement.style.overflow,e=document.documentElement.style.paddingRight,t=window.innerWidth-document.documentElement.clientWidth;return document.documentElement.style.overflow="hidden",document.documentElement.style.paddingRight=`${t}px`,()=>{document.documentElement.style.overflow=i,document.documentElement.style.paddingRight=e}}document.addEventListener("alpine:init",()=>{window.Alpine.plugin(ne)});})(); +/*! Bundled license information: + +tabbable/dist/index.esm.js: + (*! + * tabbable 5.3.3 + * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE + *) + +focus-trap/dist/focus-trap.esm.js: + (*! + * focus-trap 6.9.4 + * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE + *) +*/ diff --git a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/intersect@3.x.x/dist/cdn.min.js b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/intersect@3.x.x/dist/cdn.min.js new file mode 100644 index 00000000..2342257f --- /dev/null +++ b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/intersect@3.x.x/dist/cdn.min.js @@ -0,0 +1 @@ +(()=>{function o(e){e.directive("intersect",e.skipDuringClone((t,{value:i,expression:l,modifiers:n},{evaluateLater:r,cleanup:c})=>{let s=r(l),a={rootMargin:x(n),threshold:f(n)},u=new IntersectionObserver(d=>{d.forEach(h=>{h.isIntersecting!==(i==="leave")&&(s(),n.includes("once")&&u.disconnect())})},a);u.observe(t),c(()=>{u.disconnect()})}))}function f(e){if(e.includes("full"))return .99;if(e.includes("half"))return .5;if(!e.includes("threshold"))return 0;let t=e[e.indexOf("threshold")+1];return t==="100"?1:t==="0"?0:Number(`.${t}`)}function p(e){let t=e.match(/^(-?[0-9]+)(px|%)?$/);return t?t[1]+(t[2]||"px"):void 0}function x(e){let t="margin",i="0px 0px 0px 0px",l=e.indexOf(t);if(l===-1)return i;let n=[];for(let r=1;r<5;r++)n.push(p(e[l+r]||""));return n=n.filter(r=>r!==void 0),n.length?n.join(" ").trim():i}document.addEventListener("alpine:init",()=>{window.Alpine.plugin(o)});})(); diff --git a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/purecss@3.0.0/build/base-min.css b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/purecss@3.0.0/build/base-min.css new file mode 100644 index 00000000..df4fbc05 --- /dev/null +++ b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/purecss@3.0.0/build/base-min.css @@ -0,0 +1,11 @@ +/*! +Pure v3.0.0 +Copyright 2013 Yahoo! +Licensed under the BSD License. +https://github.com/pure-css/pure/blob/master/LICENSE +*/ +/*! +normalize.css v | MIT License | https://necolas.github.io/normalize.css/ +Copyright (c) Nicolas Gallagher and Jonathan Neal +*/ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:sans-serif}.hidden,[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block} \ No newline at end of file diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css new file mode 100644 index 00000000..45072b30 --- /dev/null +++ b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css @@ -0,0 +1,9 @@ +/*! + * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,0));transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} + +.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-table-cells-column-lock:before{content:"\e678"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-table-cells-row-lock:before{content:"\e67a"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"} +.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-jxl:before{content:"\e67b"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before,.fa-square-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-web-awesome:before{content:"\e682"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-square-web-awesome-stroke:before{content:"\e684"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-square-upwork:before{content:"\e67c"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-square-web-awesome:before{content:"\e683"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-bluesky:before{content:"\e671"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.ttf b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1fbb1f7c32d46f5dcb89a50e10d00878ed43f1a1 GIT binary patch literal 209128 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%0AUSgWHQiFZ4^`_co**CW&|kdjzuG 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

O#Re#lfxr>sz;}@f8bqwz1up1^t)%zofq!AG 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

xA$6E^?#w4)r)%Sw3|NzgKHve*eJ-FKmx(duR9N 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 JOba38zW{E)cm@Cf literal 0 HcmV?d00001 diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.woff2 b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5d28021697ff1f32507b1bcbcbf9e6a41d0ac99f GIT binary patch literal 117852 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%0DxnTep24BZG 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 G?NiJ&y^c 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 Nb?&+EAr}Jx001#^dC~v? literal 0 HcmV?d00001 diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.ttf b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..549d68dc023ff6e31b8774d784c2cfcc231e7976 GIT binary patch literal 67860 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%0A>X@lH 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 KISZn8x&9A2X%@x+ literal 0 HcmV?d00001 diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.woff2 b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..18400d7fad27fc52cfbabbda495b871bd912d045 GIT binary patch literal 25392 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 z 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 `GTC$U2 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 JQkvHO^gqOStd#%& literal 0 HcmV?d00001 diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.woff2 b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..758dd4f6070c7cb399334ae997ae9ff6523d3b55 GIT binary patch literal 156400 zcmV)&K#ae4Pew8T0RR910%Gt03IG5A1{^s60%D~D1qA>A00000000000000000000 z00001HUcCBAO>Iqt3&{Skt)iT#vIG5NCk&&2OuRJ4wHwn`v3r{z$k+yfTBl2y8URduF8ULtPe@HSJ#Z$+N0aEt zDOdp!abQCwmh$Y|>_L5?gB&hfU#4vaJsUegc04EwIBTw>uN? zg(|LIQpJjP7D7_JiW6sy|ZJcPDQHa#AlbO zcFOrdT31@DtZ$db2mk+n^fJ@oGz-{>F;a#))@Q*T$ zpyG%fd!KZ6Lo5|L*^q84*s){nV<&yGVK;LUTOliUjGQdij-6OBM>_;T7rL`mh;Kt( zWV!JF!O!O5-vC7kDdlvxsAu=9v(F9A=<}8C&qume{WipK2rA-f5v|QAH@cg&z+wt@Nt|Ub_6!9Kb z;Wr4)@iE$cuU?7n=_d5wPYR)`H&xHBn7_oJQcz$w1;r493l4`F zE`TsDfG~hS?7h#y#X09*fcFAHCZZuT5M(NYjdDZ;sVtJx%Rk1u0Ah?nL~x8kM9>J5 zGJ>Lv?2OE6`XHrLk(Ba%lG6KMlvLx3so&+Rz6(}Mz3Q^O_rCR>_sl=aD!=J1vpl0r zvujo}6>0uMDN8(V(fbq%hSR?=b1VX$bX6Iy?p0yNYDvqBE>Xx|t1C`6F<>G2sv^tk zy`6pD5-5cLi7m@Y&qSR0Luws|%%YPzld+_>``+_bYpo(efMhbkBIc_5m;}+4NlfTa zUHl^Iucr^V`vY#Y8Exz&9t% zkE`^X+fsf`w5o4F0R`Z>p$c+l6`;tmDvcaOj^#O!=U9=$b>a9CydZ$4i1VuXTM7Dn z1Bz_<8r`7MwD76RSzd94?wlO{c->0VrAT=@M-Bwe_FgH%^S6wR9N|pHg^}%#;1%tD z_%t~<`#9{i$X1n;s+=@fGI=jirQze(1NfO8gUU1WJ#Vl1?5P2}n0{9(GS7G5xPFQvf_v%{d`_d3n(cS(aO(`R;B8UJ1criXs!8_y{RW}iQ|{ETc6{F@FN zIn+<%I`Di~pH{}VlI-YQ_bzdc)K#LN>RU|LsqtB3&5;GB%5lpvi+vlsAh72P;i7yy zmsl6abk%y8v0(bB9^F%WruWJ?Y{4H^K6Qo7g=t@hYVpml!X9@YM&dcHJU zD(zLyd9y?FLi>l_IdMD#jm#f`I%Vv2Gjd%|72Z79BUeW0|q+L3s}tHS4P(?oqF;k3U}=xx=$EUuy2x z^ZU~O6sJ;M75<)*LXRKW*S44RKD{5pI_b+c*Oka_)6?n-t~+Oi%}l;T&j1w&N9CQ zoFs>aJKq-C1QxtMJ>85MGv~RO>jO61h`mcPQ%COz1G@`v!2{HNr17@3(v;D3a=+Ip zHNJv!IHm5-Y37sZa?DySbTY?36Lbg-C)gG0v6ECsZRYkVDXW&fN(I62H2Y+vGlw*2s zxs&9e#M$5b@-Ah3T4&cKe}2~gKeR4pS7NKgqOE5w5j6dkuJaEkSMt1%N{tu2tNAnK zo#f9emBZ8im)Sh=rM*9CFAX)Rd}VeVNzuJ)BUt`)pdsYogQbU(!|7)!7e%di}Wa0DlC3TJT@x9}X_O@=8nMW(H3XAYa==7c$EPMgc-y18Q`cD>zT zH`+~hv)y91*_-y3eH=-T6g$uPuE5oCbzMDI-|cX-nw`0qx=_>OnoC$MvSZ*0=gezv$NxJ>(39L*vjU3=Sj0?65ej z3me1MurC}AC*F>EI}Xth9WfCLiI5yAkP@ko7U_^48ITc~PzhB~12s_#jnEz)&=H-` z3%$_?eK81=Fa@(P8*?xh^DrNauoNq?3ahaOo3Itza0th68~5-U4iP8<-r_5M;3t0J zH~wdA#$kLWU?L`EGNxckW?)8UVm4-HZsuWL=3^n2WI0x1E!JiuwqQ%PWheIJ7*6LL zF5(g{=Sr^PYOdu*9^w%m<#C?pHQwe^KI3z~;A_6+Xa3@E{>8ufzeTm!7T+>iK`Uit zt*+IxM%KhS+5j7EV{Dv_x9K+D7T7{tWJ_(Ct+aKv!8X|r+heEfw4Jqc#)lWoMRUnq zHdoDcbHh9~FU(8x(fH<@`Dy+bW5k4-C>zTrv>9z?o7Wb%Wo-xB$#%6p>@+*w&aq4F zE_=mZv$yO$`@}x8pKO5j?H?O%Bkg~RO-U&`<)mCxl1fu~sz_C+8r7g$REHW+V`@q* zs4aD(F4UcR(;ym7BWWB>qA4_;=FkFKOe<*(ZKiE>h)&RXx=h#UCf%mT^nyOn7Ye4Y z9FGfdK`zS0xD=P>s$7ki@h0BRd-xcitk(n}2 zR?7z2CVOO`9Fj9~K`zTxxhZ$$i9C}R@=D&wJNYcZ@>RaeA2AXp5%7=@iIECvkQv#L z4+T&Jl~5HmPzR0B0i32m2{{pRD&%oUK*)D}i;#bQ96yg=+;8T$ z_lNnT{dxW}f1|(E-=}qXDu#-wVyieRspd}8&!(!XYP;1@O((k^e}6SpO;t18BDGYl z_&6KYR<&L2P)F5O^;Er90V+tleN$@PPJ248j;9mqL^`Q@X^ys;O@pnWmO$S9H}$2VG?K>9B$`aqXeKS7MYNPwtACa*(bZq) z5xt<-^qGR_D}`|?F35$r7#HW#T!yQ0bzZ?+cqi}Y6MUM_^A*0skNBzP{ye{kGtMdb zq_C8c3L9!6ZKacRm!8s3+ZrnqWQt6aIkH;T%2rLDp5KjKK1tBdzeOEJ{v!brBjucV zQ2>Qe;mb5bYqUpa^uquQ!Ej8(RLsC^EW`?Z^exzqo!Ey%IE8b#ge$m?o4ALE+652y z|G(+|Iv_nYF*T)MIJHP>@da1u&rMyNx@x~$1+tjfx) z#ELA-GAzwfEWzR|%ACx>EKJXIOw9zwGMb)b6hj!yAO4DrjhDEO zd$@@kxP`jHf#Dd2AsCFl z=#8G}f$r#r&gg`W=zun8jC!bpTBwN{sD=tCXJ%%Gk|=@VD2gH|fb7VOBmfQ(2y_43 zFZaVGqn8#II#%bKaZT{ZJ0RVvCe@%g%xb|4!*&b*a};} zj$OBh{T6^7dtehAVIu&mwY?7-4g~js;M__y{!@b-{J6sY+i(BrULZO4L)i?#I=p|I z00c{bgq)c54Qw7@mx9-TO#^HS5VQ)~0D(O8MzqEc+Q&8ee&GA)1n@odSkJ(WXdk~f zt2=ZDjQBzJ7fKsol^SQBi#CDo$3HRc7_g(j4g%W)PStmD8MjecJ^Aa}5Kbba3iW9~ zLmJVTCN!lP&1pePT2Vo3+EAcKB{^*=5tM01dpgjOPIRUVUAdaO>~g!puC(jydb`PP zv0LpfyU(7mC+#VF%igyS>_hv=KDJNnQ~TV$urKW!`_{g*pX_J*#eTIvZJsT%6}Hkg z*hWd!)l|(@p_00)n|i3P`l-JLYp6zRjK*q$CTfxo(o4d-aH()SG%oALRV^;%xr>v&yn>dn1{m%Y7r@Q&WeyZ8VfP5AzW|&S&^cpXIZCj?eX7eJ|g~ z_w~d5SU=HE_0#!_qGH|?W2b|#A11Gu;z)7wn zaI)(JoZ>nIr@Ah{Y5R2r?uRY}9)vCi9)-RF9*4#NPr>T|FG24BuR~*jpJCSn8{vzf z&=B?~6k0*kp-=(MfI@$00u%;76QS?`bT1Shfi8l=qtK;Lcntat3Qs^6K;Z?Xc~E!- zSsy6830(rkN_cH3UIY6Hir2z^f#P+rpP_g?>{lq>0G|QH8{spdcr$!gD82@DgW~J3 zyP)_1)E6on!2X2F*6`JkJ2VOM1Wks#B|Jgi4%!v+_OLG??*RJ}@{UN2A-@&&B;;Si zK8JiU>=VeBz&?O{IqXx&SHRwfd^LOo$LFpUVTTt36amsBps;EwD2|%|&7*JCPN7f4>A?<{y51j$g7+FA6 zK-D1%NXsB9k+p-!k=21HA>9Mf0qFyXPDsx|bU}I*qASwp5dDxIhUgE?ffx$ShZqL^ z4>1Co2eBLcbco&IXF==%KO16C_^A+k!Owu$8-6Clfw0RV4ubxKI1YLe;xw_Brz3vl zS-@9AoCBW+aV~rz#Ch-q5a+}HhqwU#AH;?5`4HDb$3ol$H;7wdw?N#EbS}g_uz3*o zLOmevgBC&D4=sjx09pd^AhZDDA!sSY!_Y#AN1$a8k3!2K9)o5k6?2=_`osjW6$7?pOxYoEzm% zm1QrJ5x+76Is?kpp{`J_f%H3+Yr?BSxfZ+@l%ik!mfjIBQa%T zVAn&riBML6^bnMbNb=AN^yYz~^p;1pIK35xa&=_A<(i;cl-_zU0loFblpC<{Kl+;9 zMu;i52kA6=7r-!j7b1N@?;=#Am}P!c+c3)lsJ3RdF;T6@Y?Grpf!U@I${9djpV`(P zBb`n?lzJHErXEu;FZFo8kol;WqFx5`Q*T0jAQqxNf%-&jKz$MQ#n_1YQo$zFx4@>< zx5H-C_rvDY55X4HkHMDIZ(-;n)E~oE)L*T|*3<*k?Rc$e=3ybJ$w!L32FK31hIPIg7Q}o90rQ%f?(yb2G3X&E2p+&Es$Y z>>|&C75Q&3kY#%?EG@%|~!3%@1%G%`b2`&F^po&Hr#D{gGohivG0pr^C_o=MWrA ze+f8_{wZ)g{mbD5`VYa0^dEzh=)V9b(|>ggr_g_c{+l?J{-EG=`rpAB3`_-QGH}-z z&SKym2JXe#4E!cImv(VDk9LJIoKL$F?aH`-c6Y%=wEKNU7tGHiSJU1_dpB;Ry-#a#GwlPkua9$oqV`SNFYyd*O*@EpX-Cn1 zhfipK0KTC8QMSFE^AlZ#FX@KU&4^#B5g)@3f)8!NXOIN zPj^4*1O^Xg@L-6HnBNKZxdS}y+drdmh=I!HL>G7 zp^2SpB48(`Tm*km=OfXq$b)0LoOyd zq*27+TGH>t*Tj!wyRAeJzmgXvegoB##P7(b5r2%CZzldE{wFU*K^Z>3ZORD7sJ5hx zq>N5plQM?ZlGmqsUc|XcZOUWz`?MGggyfSHj@~Y%DNr#cwQh^|^O|O8%PkIQe_>kEG|wzai;G z^6$4-!*OAILI zOH4$$aF&L=PPvG3F)=aaQp%OYq?BtY*Ai1v?xfsJOhdUx64O!clbD`zzaxDBi5Vyl zI?{)bn33|ZBYl*JAtzBDqdZQ`M0r9bV`j=Tl$VKFD6dl9Am*XGsfgH(@&V;TVgbrm zl30lHjl{x~?1P)>c5h~+0_3fcA*U|u`6v+ENk+)0UAqgtmgj zp|q7H4x_CqaX4)ai6dz17Q~UX4QU(AfwQ&=5pfJ{Gur0Fv9zsKGLENhOWTP!fwn7c zcj7eKo{ESwY5UOjBhI27q=K{v?O@s==NwD4!)S*S=hKd)9Yb75JAppLrL>c1Cli;^ zPNkhmTtPdVcFwietX+)6^|Z^}{-rk|aRcp+KE{o-dujI*H_;xVJxtt6dzAJ#aXalv zN!&$yIwJ0-y+nJNxQF(J3gSN6+q4g^8JB1u(>@^{rF~BOf_R+vHLiU0{);{w@g#jL z`V7~7vp(YzVRZUT^jV1?=(8!p81&ica}mGL=T?N#==0DQB`SR}{aYE(7pI>_{7XNB zei4I}=$FthXRt2)O8PYnHl$xqzm37B^gHNxGT4@WH~n4)+tcr-Kg3`s`XltG80!J zoPoH2oQ0f~xQLvSoSV3WTu2ddIk_0QIB^BJj3llimzTJjTuI^@a#e|I$+aY|BiD(D z>&f-V4Tu}ajTI3$lUtBm61R}ss$|?oZcpw=+)nO7?nc~2?jebL$-N}*BlnlMpFFT+ zJU|{y9zr}w9!4HcJWL*?lJO{c40$~97SPBqvRududCpD$SU(~b_@i#RyH4E_%HJeJt zf7G1RT*Uv>V$>2uQcFu>6t$ehXlf;iG1M9nF_v0~T8|hJFN$`7qvI77qu_7AFU5{ICTWAA9XZ!%r&7BbsTj(Z4h-Lbuw)TbvhAk zICUO%K5Ybbp`=YrT^`XUp{}B?rcFv+t3#koPF+vkNSlJXg}RM4HFXDdCv7_F0qQ~8 z4AdjkqqLc*Clt|Up`N0irp-z{tH?Gx^*r?gZ4T-c>eXuuJ?eGpP1-!v+en+Adbgl0 zKz&4gdd;;*eNX*JTa@}8X-iOlMYJWUf2sdyOHmz3TZXELwk$Q88be!-k=+#0R$ydf zWKY_PjO-)n;=^+xy9y^mc5{AdcOqsTEU`5q7ZO_wayhZJAy*Jv2XYm$bs<+5TMu$0vGpN07ux`GN3jhd_wA!? z1i3%tfnXa$9twFF*k+JNKpqXY1>~s`+XnLN2-_C&5y(fuwu5{@Vmm;-Ew&@%yJ9;* zekrvl7-nV{A^P1Lw+u)TOhxP z=p^J9ld=!;tBEd0ehsOABfpWf^O4_1>Zi!>Bsv!PBc$$y{83WYL;e`C*^xg^+IPsG zByD}~j}iTh;t5iYL-8aj z+o5>M@Xtf)swiF{`V+;Ar1nSg5-CGbyi6J>-XOXj#apDljp75+zDMyPsVk%Si0FS5 z9}`;<#V4d(jp9>cQ&D_IilO+5)Z9NVgc~u*9n{hbLZ*IRa^gIU;G#Vva;S9&~9NIZ?XGKr5d*C3vcxr58UkUQhbN66hE@gwG5q;;eF;67zRm`)VG_NjE&^m9EZ*yb987jCn2b zCd}(ddja!$S0_W>1{v&#c_(RsdAG&)_u$HR$a`^hIOKhhb^_)Dq}`4Ah^x;bAHxyy z1sow?#^U?8AlSh740G5zg6RVL} z0;?mjAXboA2x~xMVXPq}7R4HlbPr<6nux?wSd)?%4Qp}|+hI*jVlJ#1NbH9-BZ>L3W+JgI*32aK#F~S|oLF;{ z*br-R($>OSlEg+>hmr1AtfNW$6YF^5QCKID_Ab_`B(}#o&E3ywsIwvM7OZnf9E)`> zX*Xk?Puf&i7n1lD>oPK!59@N$KE}G5#D!SblkPjL8;EaV-AKC2ux=tTEY_`r*|2UW z?H#N;$zUCs1mDVZBcL3F|Y`w!`{@ zcmdWAB(}!-k;GP5zmmc9Sbvka7>9o9+Q%^TGtBNk$M9cZe*R0$_^%+{Q8@H#!+(R} zzs3CgcUU<8Jr>9RfQujck#J*?(2tDS{n(K1f9%I6-7wfsM7q1NpMu0<*iT1daqJf( zF(vkklfn4dFF^(qV80~k7Q%jI((Q%)8f35l_G^*B7}&2*21{bU59waU{#3%**k3^6 zGwiP>@h$duk~kdudr0h${Y#{shyAA{j>P^mOBeq&Bp%29JJPns{(I70g}pu8{~;JZ z0eJ2Iy8FHk*Zw~Q@=CyKUm} zut7isEf@k+6|HjJP(@ngnpP@T4Na@GNR_U7Wu0ytS>71kamO8Z zNa+lwcjc;fau>idgIwz@?NU2#=tw2SepL<|Mp>14 zmfO@;i5f8`C1Z?9$yi5m*X2ra*X0Vwk}<~Q93*3mNrd_c!zc<7!zc>zAD_wt%>Nmu z_*QrY+z${YO6!DDUFb@eRjCr?as>BP5=YcdQ>`OtQ#;S{tg5t*U^mZ(gQ_eFt^LZX zREk#AH{#=xQgrY24A&EqQo;^)dH7sxnc#ifLVguHj^lgddvRj8o;Z0d!P(mIJ_yRap)7pel=r zWQ-Wt7t|q!=gPhQ>M|N8@fNg!iCTyf$!)vQT#Ocu>VHARaB(T-mTB4C6OA|ybZe0i z!*Cb1kt{4ki4fEZ!^KE3CUMG`Tt~<7Tq!6e4i!A`Et~orEyv+`WmBzf8n>-h zzGu$zEC;f?dw96JOa8w6WV6*mY_&Fr5rWjm@4FmftF<})b_@aJXIH>?!X`kNj!BL;2P|M+e1JL3@m z&cFRUq7M*uDb+Q9(V(i*qTOy&U7zCoM`U@HKh|AXEv-fE?NirnY!cjj^oecsoK2mCjq6TrKe8XwgkkW7g>F|VEYqJl!U-G#go8@!vM6+`Zu=8# z+Bz@Hb6su=5~Xya3SCxv)sgBJ{U8Hl@=GzJ{tqPwS&o=z2hZ&+wR~ckCg+?}B37Q; zjv~Y;YQHS-cE2JS!|~pI_1M3Nd3JD+<=6;TOwKvAOp}|7QC!ro9>)Gf#v}mFzcZiV z7~cjb0KzhFG2aGiQ$yP&IMwZmmH3|3=PlFZf^&OJncJA9Q`$+@w3BKPA9^L;Cpfn) z)8zG+0^dKM=y!6ykl+8`AWi-CrMqd*c)O(PQQgLxy*SO?#qW&o^B~a6Jg>d5D6BI~ zZ}E8rKj*uQtl^~vqU+j)_cH>2iJk7mt32+11moX-h9i6{q;TEUfvC1=6i0Di_kD5u zEYI>vMIP!9%W(VKRb{cS5|zaNgCV+};Oy}paoC@;wLQ9iL5M^xE~-R`)~DkuJ;516 zbU(0t0uhM=k2t%tYd!OSFC|;tFIl>t^Z$;<&Hot>aRRG$d-Ph};1{i-MSeCy({-Gg z!#U@MVgJ_encT_ITO1Y5Y zI0%APvx(SjwnmM`L8sGy{Z)#48ModmhwIIyR?keG)>3nQIL2nPwfYOTnoS&iBsSsy z#g2=X;5a}SDXkN4GCwj8YEU~?!pX`iglAD~HU@T6RwJdazU|ERmTmlo#`@!o3(rM# zMhFVuG_iJf&f3Mtm}a&00T+=mF1%;j!Z|fQhz|x#ta6E^Eym@0!}C3S4)`Yj?f;W# zbJMga=e(Xa5F0q+oKt)a=bS$D5apb6)3hdT7`hY7G`UQ=1u(*o;0R*aj@nhtMCxmi zW$LwfN!kz2RRoAh>q%cb((|_IyNf3aYaE|r2yIO)v9yI#zK06F$1BGgmT7XN^|ezx z2}jqZo*tM$FrQ%`CvXa$j>i_OvRJD$7fTJNvT}&X<`qfaasRNqZ8>k6jpgke&vCQ2 zwd@DBZvE}&Q_c4JXEt>*IbnrYw_k#9CW*g-R{AO zr?q!&wKjK`*Nbtl-tIU;!OtgUdEdNfcuZj-a0lK%PS)BN1u{FxccbmXuR%z zIKgJKHJPmNYp?gpbY-Q{?U%iEoQ^}G<#Smb~`u$>M6>)W?*uP#ln9>U2@FBis33IK>GZBrK>ktz1<1Gx+Aw#pV2qvwSA?4JWs^`J0CE zepezXkzIG)9eVnd+fKWP%;mz}xgL)+(ZKce_~>3wN_E?b1ERKpNX3M3T|~BlvKnNJ z6W9mn#lu)gIojL0MuJ-#g1nP8JnEQ3&qjplbSkezk=1eis9JyDKDC>6jh5|2PIcuq zoy#sO)H_M2CPC;M8l$e-YqU%TpC3bG3jk{|Esf05)krMDCmQvQ{!Q4CjM;x>&y~b7 zNw(|r5%_Q_teER^;r`;WbNrYy4?A3V z9xri$@6&QwSbyuHfQnyv!_+f~<8a~q;g8uwwc|VW)w)!BqgL1G=GjmN zt45MB72CH?+&9;gvA87ddf!Ojk-ZNoRsX0r>Q`Aq=d>NU?w_WtR3hK`PMIXGzQe^=sS&qlu z7{@-+<7|pzzrNNUg}-74^>5*Z7)Os2$M*4b{kO+oGESU0?5A9~HspSW2KG>^81W;O zO;aKZ1$H%%nr-)bNgOA=-gfKoXSlLD7@j;i9IUS3!-%6e>1A76+1i!YK_;h*qP@D> zE{fBa3Ax(~O`r|O_?tmyuB!N)p(@fMZBJvUNX$At@}gCvqobpb^av;t$4K08cs6y8 z>J+OMd=Y;=A6qd3sOrOyQe{;yFlc%)o7&V0mYbAKl@6KTCLfXA-NT*qX%3?23c;S* z9>lY7ad`M)?Zsr+Uq2k1t~zscizftg5WSnXD!1+Ye0NK0H*Pt7!d-pHJ&wEP!%u7* zPNGfDXRjA&Q|2-ed&0dhb>Qv>acmD&p0NVc+5Ai+lGF+x?U|RKcQV0~n%<1Z}Ntp_muwO;4^z|B) zu#G95*YjNjyJcBkX{s~&!d26-OtEsD;9_e@El6R@gX&zkuozh;K~Ws}ns|aT#3+o! ziOx3v*>k5O52|xsoNz&H!}L7iMv-e-CpvhmXhqCrO^KAbez3B-K3Yh);ZRBtE$#_n zTP88krZ#cp<6_GiDaFw;_k2k~ZNo53(r!CGCOrNaCy-*2MB-EwVlu!1DV|^tYs#R{ zxW~wE)&8BjrGq&E9GdD##<)Co@1_8BL_5oOgg!~mQJcy9@Er;{1YLUF$D6#Bezm&ZSHEldeG=M{xc( zKNAvm{F%SuTsRIf+|PY3KY4E7p3m@MoIqCpD#xmE0qbB(MiFy({lC8xX^yR@5py`k z-zkU9G{T_%I7GG@p^wihv(mqgd0rrZW7vk51BCG~&Z*q7m9BJAD6J^CM|L9WabP^U zKn5Nq`QXHURSw~(nrrSpk!z~wASS6!ryagm3M5xVuXf+cC`@rfPwxDLi%uUI7oz`G~ZS z&2_HRlxmt6$gGZ~1$AAO)j{`ktSF<1H z3aDD>`$Z`kA!DMGuHK6Ji>+o8JCZRM!SgtKC1bK985?q}Ka~)Yod0IQR4|5? ze6AB&KD07MWR1uVr^Ee9Yfq6>D9YE8hnu!3zQpC+y(;aqd;Rb;krdd88TGF|1^tna z-@LH;TL~e_a|Q!Kl7wKpJs6yEbTfo8*&#`9aS_*e33+yq5d0)#QyGQ*{#hxb3m8WJ z^mq68Ex6L(kLp& z&s9n%#eNlF_Z*{;Q6vQt(V$Gj8iMru?G7TYaIc}KH#Z2bAY!N8U%h=5eIHlJPi2gr z?{sE-uHK0ml_OUOcO)Gr#`8anG5gM?AYP_!zgf$1u=LIg*lG9Qfk=AA>CFv7Ha1Te zJ%aD-w>wxLp^(uUFMLG5;A@c-I6{u`O{ixWhQWxjQ4oeG(+}|*FA?Sgl{}yNg<<=& zXmv$;Lci0IzCC5Z~*2rGR6sP!T`>|v*8YS8GIi+ zQqAgX=o%z>b*`vOpg)>5R=RDd%Sv?@cS%&Nvs4Y^VO!^`n>NkzJ;&l<{ON>5VNE<5 z<_|&2vxBNE`o`F$L08+`+wE2Q`*8jh8=;UjOGwYfm=&0#MaW*yNJHjCvV<=i1DBEag49?5&hR; z_|QWS`H23{arTqwPkme%3#QZN4(QicFyGk7@ppXTdN(f_13ItgUmy?SZ@{m>d*HM1 zTlfNeCB7K|GfKxtq=PvPrF6^L=cfDGj%^ynwvOUR$2!(pYuzpOmDahA;%GcuRXS0h z+V_k7O6jDU(!KoXZqa$@Xi}=PPhSfoSGm^vMN(8Ri|TqaHqG+zvOQFnaMnBR{rkEc zmepWb>cMcJhkE!Zufu-Y&9zo~Fuawgo>8j1Y1cf?dbgcdrWjIbt+O;s6=i5uU;7=i zuaX#bU|U>xuH^*2Wi7^*>kG$@0#|yBdj@fBCvZ&Zp@E2&8L#-hVF!U1n}#3Q7LtXq z;`siflF-1he8*WPcHkStwwr{xcrJH@RY9We*Nx~s@wWmUGD&JK##v)US`ub{@E@X*1xdhy5d6I|0W_n_L>d^ z0OtI=^Uo6le-nNc-UUy<=MYy%ec0H!K8fPK|LXYr-N~o2^N9=T;eS`)T)r32N3FHe zxl|7IB=+0?a#B|KZZk?8)AySV+l?b?t+l8O8?MueWHaD_Zy1ufv1^AMErLjFx}2jQ znNA`a9n*|s$Ly`RjfRw-G?0kcrI9C7;v|u2x;*l|Mng(3JZ`7@R+?0?Uv8E-&%?uxhaf$ z9lUc?3QvRE0YXs&4|s`0-GOSV*L1FP4R=~pS|iZ+x^kGyapk^-km*Yuxx=~XDZqA%%^0GQ@97-48ICfwnWEB-K$&$*J-;WKnYVxwJwbF%u`o- zFdPgU$4ACUQ&W*dUFosAt}xLNxz2NycQWt?_=|S?{EB_0@S7fKdgP&<);k;8ti3|W z%HAlv`-azXj|YJ`wc~A4LMfq(lrDa}y+7;s`;OC>#BqrHa6CBMw!@S$dDTbsKN3py zN5*IftKZGvbfPwM+if>Py#AFu2n6>I2qI!|z(rh@jMbmM6Wr5D|5VCrJ`H`x>DRMu z-w!~cGye?f;IBgydaw_#f;YmC!@mF^4DF&;M_8?b-Z(O-#0fPR_ECCLRrYt41-(4!SiR9_|Ph^2~F)TTwDwd2h^qf|iz;Uye~>LL)sL0b5L%BnrBwbrR* zyq04f9odXY3#7KedJ>UeM5D2~v~=v0kjGdf=Fg!nv#w*!NE~h_!~ZgfI|~a7u|UKX z){MkntJOl&5*@{wk+_};&QIk@LRyUmlDzmxLP&C#hv>aAAtZUDhv@xMLP+vU9-{Zg zgplNsyN`K>L2=BOl#DUPI3xd7>o0|7EWI+=fBMs(o~PYK!*Hr&$5wj|d2S?F^D?t+ z_mwec&F_1r&f2f+Q@6IZXoLj!BkndwdwYA#*@y&dD$g)zZ*e0(<_JOKc!jZ*+Q84DkUFyiRLkaQLxYSFH&| z#P^Ky2_<_;=P#=&t3331K+cCg4=xjNSuH)AdyW@>bSq~6Kd(N^GM~1vywBeTb zvXH(Rf1v&m{J#1}njS|XqgUPKhoNLf!w*A=1V77z(69SE2>n+y#2cFNDe4M0csmLi zjUy?L?D_H2a}0)!d0ZSyFGI@K0=f}YijwIz~Xu5yeNO^I}}bRZ*~K5v`VS)M9rlEsFb{0Lg^ zBK{3m>wjA|SzG-ZRaGs9&q8NVTEj1`okIV7C#Pnz@8J0Jc0J3#{_DT~qA@3)+}YWQ zbhC`fU;C*XJvyDup!?KSAFp1XFg)_qH5|gNa0D-h````mL-1n&RjtY4J4utwI@?jL z;~Z60ns?FZvQ9$(8=67GhVz-!?mKu_f& z@I>kTX)H;q6Z&0eQyQ|om_xm?vR=+{DgDh_#!j*NdyCVZogHCqH>@17X_>C;hu{53 z!2Pf|@$6UdX6g|x;Yp*3B)o2$ci%&uyzEi!=$VzF-|^RXyIsTU62FZN=?5II`eDE~ zb}aq|?Ux+rZ=unQh}mtE?`lMC`weAPr)GK`9h^c0J8&Dk5}+DXO3%7beRHeIl{gs2 zZl&6$Y7jYDXsQR@eoNc^|BD&wvg+%ys8an*hy9a1w!^Y-{rkWF`|_|nwA=fE;ng*D z{C9rmciiZgd_?~z-A8>y|1C&^M*KMXBJ6kGg|oHxTV-R?*A_nYUGI9=L7H~UmMbt} zP@kg4vllSByAiyE?Ej%Eoz05LVYZ#(|%5GSyjt^{$Dc}8tH77^W()K&?l9hJzi zT9uMLD!0#MRhefrw{m9{1XBH))Yp@Y$*Cm|H1m6k4#IGYum}GKIZWiT?)72+^Rk5tMU1G3;fqQgTD^dUsdS6iP198 zwM&9&=H@y}GiveZ43&~Ztzq+tTo*kJ0%kfD=<5VEay01(#t`{1+YEh$>v>*1cNvo% z4Wd3H)Ew;0=Uug3z(jRNrT0mH>LZU+-Fu)s6xqy`Tu)&<%gcVLY){!`2Edqq z`}?q6DB(7Muq-q+rxO?`U{By6H2ut4?O9b}Jd6uH)M-9t2Jom>Xr(GijoZqq(8Ir{ zbf(-Zt4+owHz9T=FHNU?$yK%ELsP2D4oAO(pJZ&xB*xi+6(1Q6&^Pnyzq@kf$`$l5 zHbEcPHhi4?pCS19Znx{tf*P#{2s=<2r$Up9Q9Y5Sn*9Uyl zL6)Q;b9GE-sncz@(yorEy`I#QrOp!gg%gSvvPx7Z6IEn2X?`}D?5CP_os{QH%vZyJ z5Rz%M|K6Q+spIG=BcE5_)Az!__k5MKQWdZ)2^Yh~(DS`Ll1wE!Sjse5taLMU_$nK& zYfvg4F>K2O*DJ?9cRkOyY!&kPCS$9S7uZ1{1ONao6%bB4Eg=Gb%HVG){`eCA-|Ffr zW6gXXRNL}B&*gqx_FNFQ%}w*NH6gw&G)+73qPs)Hy{m*XZ}r2RKP)KyEdwykl|2{A zcBPs$XJ=})fsR_qdh>y>j9gCSh+`eZ@><3iW8a9;alzKo+W-!KJvTO)iY{0`!rO>!%G2dn6m z^xT+2Gfk+PAgKYJhg`JSI1td0^GQTVFy|mHLKx!Jn3Nd>;Fg@8QV&gjgVfQN?H`~i z1z|Kh6UuVWvRYsWZ)W#1dYoe!ehp@wKA$Dax#`&`3?vzI?(O~#wk)eR?1K=zCq$16 z0V@VzF#q(b&sTj9a3o1RCkUK{!#(vGUrih*SbTm${eQJ5Bq_q+`PIe1amcIt^gDKV z!3hGVHyK4yWT`6a*>+D?RBKH?F)`o;C(r?e8rs1qsf0DcFy$l|9L^;TrJ)i}gA@52 zxz5HcTAkbWc4hG8!-o%-t5r#=R?DxxnYzo4H2H1t@yBUz5z&|pB)rFlH|;z~53j>>p!6lApHwEm4$c`2b`ZHfk$AG6 ztL-Se-4x3^4tBBYl)qATT%LZUsh0U_- z0eEhCvtU{9KolKLEzDo@p8co#v{m^eDBM}v+OY?=PtCCShJziKE1ITo*TEkT{+*&Q zO;IeA%R*H}xm-XpGPk}4|HhZMu0yw?b%lnh7nAT8GR{%mWGQJT30WJ?JRQkgT}Wp6 zk4lD0i25~KXW%#s^QQ}i)AI|C15CHSX7rHx7qrW=nTJmM{{!i3lC(xl(`z3%uxIZK z=QDfv95~SSOp~m=qNQFzOYWG3T{fEJ9LlGfa}9b0LXaIS3@-Ts5qZpZJ`%*g?WJXqo4@7@E`%C!QFgBF1#T)__-Ye2B|B{|E4-e}yT=2O;` z?|KWtd3uz~StcMhLUKz?3rceYCcA`b<#MC(D2gJgzrzn2hG2v^%A;9ytty6>{8k7v z;c{7az0{rd=^8n|D}u}CREtv=fGZ+}J>xJIsJ;uA5W~WH2TbXZ>}NZgI3a>QZdw?2YK6^uT{xU6vRtnEAWvbcScF0|>%O#~fC^vmt+KX8 za1ll*Lzkg*=qaWyd_RZZ5@$53?Idj`$^=o!KZmynqkyj8hTric8|P^zDoN_lH5-`P zYdoZVN1{kIOK~Qve7vxcwF6z!(5y z@Mhyw62-vAn!?X8ZPsYV^{aAjL!w>-BSU!S8}F zgZ>*$EL!UK`wW2Hcm+5GTP6;!V-RMDJ!_T;>^K-ZRus-E3g&gL`uB@lKs(VHbUl^{ z!^gQT**dKxZ6>u|qM8sX96n51VZUz>r%8Qnois`PFfNc!5z1SU^#;8eIB4liJthj{ zR~Lj9<14Sc@@7+Ix&_72XheU}n|!IlCf@jE&V2Wo^GmqSbc@kfc>o?Sy>KF+%+lFt zIOG*2d)gCue6h5zkKaL;qies6c2bomp?&td4gdhNn2VD%;~L+uk^nBNJ8`F}G;Jn( zdUP#a%peI9H66tLc`L6{RgF6KXPK6toXX{=RCU@i{T0m`f56hhW%$!~zx&twj{gv5$A2ghLWw~&-T7DBG&L@M zv#E05W>0IK&T+!~`{8J3zB#+N)J||~Zv6Ux`Imq3!(*LJR4G}O36wg8JzsBD&IHFP zp6CDOrRV^<65WVU647nvk-%3;Qsz(Du;oP_|KVnmq;dJP)Y5L2q;Zz??4AbuzW5mz zL!~l5o%1mi^Iq*VTcs%viTEzhgvtK-N(Hd{$5ndReE)K@2{;c&Z1Sbv|ITr_yo&il z@owzSS1O=0HedJh@l>%0cp?g-dKdt%S6_fiW!}Z5nQcR8Hkb1l#5+bztw5arA|69; zL+?e}FRW3-p+I;{Zck1c3v%HT@e&QF;<>W}x4KhIJsE`;;`8eX%`z{ zT8gR_EiZOP%Ns_MzI}DxG>p7PscvwcmZPe4kALE*tmy{Vb^T)r`)MqB>RP25N$bGP z=sJ9W)2~L-=7e9fYaaVOdOy*1z+i}SNMzN*V!{{aS17$Pn#Bg>iZwQ6~6OM6}kf8>q zXGt>>?uM=T2u5MJllY!IgvbO@pL*Vt|J;H$GE(dIUfo6!4s6qJfJ zRBJ61^>UUetgjL6>e~b(7@^zI1L%ziWl5L>VK*ab%$w!eh%lo&JW#kyNh@vff^sT+ z8YQLmR_YPd{M1TS5%k((mJc!+hDmr{&d<7`l9BA}y>!ydet&s+xv;QMI4H%v-)^m? zfgwBv$|f<*eBLyPSq5eHJ_D08nZ2deYUw&-H~vY-KW(*IjOqHGKm7Q|KW<@c{g7zS zSzQPIy2)3$X&+HNVSr>2q5`OdSP#BfJ>m$y%FVBD#D$#TIfK_9SZks6fD#*`I^FpW z^ZGMJGTU>s=3(Ko_}KK}8K*SYar;AqF>je;S(=QQ#| z3u9~iT2OxM@|_392DRlhO^Zw~nYMzSmf>rNa1Z)u8$yj7OXSQt{gcCnkd{hPIHtlh zhGa{1fz5qhHw^u@Cw2Msu%PehQ|>MI*#AhUK0)d2Z=P@HLrQOdS~J4gE)B+ep_5q>ME-JA~@t87S+SAr$Is5&&B+FnmMrcAyUD!$6VaM+XjQKOr zv{7_?*9}4G5sNX-or9aXs8x+Xm^m-!X(6Q|YPEX4@@%iw>P3#Tj>1cOMT}VwO$YZm zoGaiBhp5`B9UTl!MS1Fj(s^C6B{g?espvk1OQ&n6qVu}%NGA2s&QP))q^rzTf3Ha(%Knb zL7*G4T+?W`OEnGZf@`KS-o$Z9*aeLaiA@ZBNtb1HW=54|{UueeQ9-E`4M0j&x*tLk z>TPY}9t=?f9m+_qlFUHogf29X#s;K0T4e~dS6|9lc(DorF3HkvI|zLxgY%F_Nb28G zL?LM=B)@$@=Z|z<_AH731nlCV;L;Ip6n$ux+mnP|r!AAMee?@%>svTO+suMrb=a zA zdeg-MK%qE&-Ru$@?WMzqm)b^L_7&2K)ZmO^teNB&szm@ZW^h{6;`6`w#V=UBHa}mh zGtB+@HZg)Bicp4*qx0yYTjNk}BJ6JMmQCqY;bZRAJ2>pVeeZ#Zmyq!DuX&4>Gf z(msijQy|HX_UdiTH+}K=EDp`;EMYrtmr|O0`kXA)Q`X;PJCKeN6RW@1+hb9{NUIy4 zLg~v@`B4w=yqPvp4mDc31mbq8etSF3(k!j#ab934A!$3A8O11{@fSUBtkh~XzkNAa z2S%q)pN2=z!K0GY6Bq9L>A7>~ir)C&6&(juc=RBQ#t5S^YAyC3!lUr$px5h#_JsjF z3Xc-Xrr^=x=Cz;O)H-X8V2IvpC32rg=);6Z)EM7Es0ecqZ--;3vt0VEfgd=Gm~&>B z25mQVI$O%RZM=?RO8krQIYLI4kW@|TNwYHtE-POD5G6lx^99=m>SDkcuvE1irC{6O zfTDl{wp~yhE5aB92JGly+l7JystWi02@H|*p`DLPRhs>+fL#i^s7+IwXF(<)siXW$*o6mH=RNnRI$GeRQm;|!&IxXKZ9&>Je|K4bv;yQAH zF%B_^UJM z(sej9H7A#MJ(@H~rAfV9WHMDO!lBxF>>(%?r}?s(S2-~ayi>o;6jAOFMSC_el?NJ7!p zi*O@+16_%(SGozPV3W#iA@o@TC7vCHWTc5^(u#A-WleLNNk&LUYWZb_8Oef>q|IbY zBB~*nF0;K;)8IH&r|^&=1X02V+C~nCm zYKm>!wbV{)O16!Q?11qiYL{aN*hPO}$hZfiaSui?61};5(=&a*nVYw_!Vl$sJD>A4hI2N@bPupb3-}kDl+r}>qHI1 zH}rZvA}RVnS0vJ7?11B^e99BXgFdxKuc0*+PeisJw=XCi6&9k*#;qO39^{(}FZ6mn zqEpay($n?VIGaAn$6n-7Fu%OiDk}`OZ~XJR{s_c5F#mInBqfxgoIEa)YDJMR+}=r( zw3#U`2|xunUQ8|6(rt$jdpZRFLm;y}T+B1wyklpQfFt3a@kLXIUr%Z^&vm_8Etz_4 z+jX6>MuRb3pP2Zp!1GA~-xc?9V_{*>)C7i>Zk^b4!{2e;dcE1K*IoB#mpj&hUyj{A zJAffNaIJ-r&p`N9FZLoHvN@Qg(efp*y^;%gc1NQyxi&|AxvHKT^JZXZSw%h7+MTYJ za#}ItKk$zh*=PzOrB;Jo zNy*U+0}0}IatUfsq#ac|dj1hwK?l*=HfKUoWb1ge1oEdGELQ@zIz(WSV5B9z6Z~gwcbLXtve60LC48{W(Xrs`r z3Oo_@dUYrj>w;2X+!~q&hwy@~+ec|gsaO+~YQN}hS1tyBD+uK=>KC;wUbBIUsE=NQ zo&YbzTVD?l4B_wL;kTwTw}EuMoC-I!{4p1^l)(-?`U@jd|; zd%Y~Ap(cPyTCJ8r341-NFT}${mYL`Bm3aS5VqExx!(p0mH_|k zf`E?!#9=cDqu#HlkWoTeHf6wVf2oVe)Uf^3F(~ljQ~$XheQs^cq+A;~8wf%et)dcv zV^)OEC7d2#M?Pw5hw%7Grl(3jx-1A{x?n=D)#l%!4!YB(t&(sp?|Sro72kRv_1wH> zNDiRLYEWp@W@jrEa;xa*^iTvoIKTLS&ZmYkUoJd=kD$W{DV%uxqD(EdXUTi z>U#q9!TH-YI=6M(i{Uj~55nWHt(i2FIMa#ExIXqCP;&P;7UE+SciV;~8-h|z)3mPR zGSj7!E)mTzm@cunJ8_nnH;-YW(M50t&|PRRV5n3VG0)K&z=(NQO1*eu-e9^U5hCWw zx|+01E`?qI$!7L_WAi-stueBU^p(8$MK8F*fA1sF4lTg@m}fJGgy6_ zQ--QaGUG-l$Y0-la*n$B$Ln-u^V$mwMXF!M-+b z_N%#3pE*xZ3WcJw-Pm-oP>xUq_50Lm%0ZYjU#qk6-xMr>606td=Sq|Uxs>}Lga* zMbY$?Im-kqACCWy5JFrxeO~`>{-3C4v==rd9`(!U+&{QpZ^K4qygm+Jt-opJ zk2_9rLJwC&k5%gp*QbYT?_Zyjs9bs`z&LohU9YF$On6@PWqz{$)3GI{_n{-`a?X0s z#6JLn6!Z)`OuVHT zhm;Npo7QTJ99iPefvL<~s_%tvd)_k)!|(_(4jjDm&VvUGLOg>5@bYN!7~s|)Mz9R> zutunP@TQv%T9nWO8e>}FDq_IUFud^xJj1}MX<}@eDmDxc&X>l6wcRMCf_=dd92)=z zHiU5%rL{*{T~NPtZU^l_$NW68cDngY9na1wZH`(sLE3R!tYVdFR)xL>N}~Xe;+>Qa{Y0DuDBdez@P`VQ|gr*8+vgS z^sP_*1Uie(qdWJcBm4AdyPc(EA89{^>#0{G==X@hP*6JLL@6ANxIOWKY*W_?SGq63+m06niii6~T5ECU9TzM ze+!lJ@tc1M58xuw6sh`=s~yvqrb)3IcwrJOqifa|=>|9yFu*tLX6u-$rJaT*jg^vP zl#*yk6h>o&Wg|c#IkwtMdb6g+BUp`D#?OV_l=f5U4S}>MyE@k=n^(^cZ)<)0<2C!b zKRV4zi*MGAcX~kY_yU;p%8qF!c1SW(<9Br<`4lNahZ^x~fCHGS(i!R8Uq>V;t-|XZ z$AQQpxfgQ;KtX#{1R7f%)}xD)YL3H`ZI4 zn2Q(~I1>NIACtY;80&7u?sp*iBdxr4&EURa2 zTD_5V&m8xLbNP3vBX{)y(zs{MdxYoi9#*4B$cTobERHkqy1qQJ*U@ji=bn2^0P`L_ zds4V}V*T`g@^utiLHp26=0#!)Gl8WA{L%&!XqEoK7Jg&c-w8a!l zJ@qp5=bZH2LahEpG!>;e9-6Le#zMd&rt67Vi1FjF{1~P66+J~wTlTlmyToyiB=Bv- z(3^CvN!A@xRK=R;TxKql_9o71i-L=5Ox{IF+taUJl)!%rVcTbJyr^$;#>!>As#F$4HBOy88I%?n}M+oP(ktq5V; z^9o_`UfUMp%-g#`P|C|mv&<^fHAX3`G?Uk8e=flO2Y9K(IAb+A;-wN}{O6x2m;cO~ zI&a%T>>#vOTX~t9*HoToIs{&VZy}D3p<6LUCoHN-RjUSzVDmT}ZXO~YHW^UfVfjF% zs+pyUBw~wDkT@nJ1+^_`Lr>&&>K>|1aZ;}|)ttRLP-LrlV<-%%`~)GUq})Mc%*QVl z&&}<(&1`yZ6zT!k2z|afhb5(|Vaymev})0rVPW9TfNh0u6@*BV&WwjD^|2ypnCnOE zdgCt-hK(_;^d|O-Onj4~bQ^@J5g}S@@Ii#v;~=u-i@kz}#R6K`JDCu=jzQB5t$=?t zp;(+6I(Q0-#i=k_BnBt*g8S_dh7ApdD&2E+9fMM=_Go&Ti@d$tJsBmH$Oz9oaM~W# zW}%=0LL9{(56V#iO`=2S3UmW{C3+aW8NC;M41IPSnM{ya2`K?*6@*r!f=N+)`EE;^ zNw%&+yyD|a+BjQhW(O8-yNClTz&FNnmNj_-4mLioe_7KQe3xk&l*=tp3qLEU&?=W< z^A3lt0Qd1ve_g%&c;2V;K%u`NLT4nLA~v3~|8DROrfHhSx>HlGC}3O=?$lKGl=&wA zD$&5T_Dj|J!AEaZwnos`OVMjtwhqH0k(!CyrLOr(Hw&iNHmqs`c10AM{xAal5ZynzU*s~PR?P1%+bt-je>3J0zg zH{F9$#3o~{q~&eY^T5>VhkW`5t`nc2z`2il;P;iSMx`?1yDrY9=-r?akC<`Lj|p ztEF@&B%}NXQvwKdMm7~$);CRiH=8_ zM!|&MW6F-FX*y3zb~X0Pv;(%DIp;jVQnjRgr~Bse)xi!2q(N8V2JsU{F*QQ^#E@=L5rU zmJ4}dXqw6mqAJE805eoY=7Lg1k`+}|%}|pNQW4tP#0Z9{fx2iHI)bi7HzDNuy0GYA z*Y$PMI5UTCB6prM=o1a9oT$W46xAe~pcYE`j+2XFmWG3%p`!fUB_J;>99YhM=iIKq z#y~?~t@R-eR(rm#c(Q{B+0}Y(y}bagyQs?k9!Cx(qf1rLL{VRB>h9vT$fxP+O{d zEVkRWm!=)FwHPFeNiqq zY<85@DhmKYXxzs&zNHNyg zTIn>_#i3n@Xo-jDs0t=EE%|J)9z`Dy8NvgL+>!C{SG_-as^0YtFUrGWkdd*yE9j2# z6x|sY1~J722uJDWFv>H{^}?5&<4YaC6N`Te$*t#W*-hJrA`UH#fT*o1`Ml4~+ltB# z+V(-FD)#(yJ(Scbm-SA8Az^Z8OFY&GzS1FrB?C@9tvEs8C{OEp?*u~dgF+nSLIiN4 zdi?9q+d{ow&$MlG)6PZ50n@h4o@!aD+-rA?VTd$TN2d{LATW;9e05N_1ZYyTQo*@* zP4%6jAkl?bWmMEgi(os8@EauMLL0++7(lbAz6MP&*P>pp*X!L-86<5B!n##7XIduo z?)4M$aZ|?bE&q0bj^Amw{WNY{)knUG7U}ev4BLk(Z&&vNYgwqn2JiDZj(Z!{aC6PP zu|q*v-;l+FbI5Xczup>vdVg&I=G_q!+RM$D-|YxSsDMuEz0Z3SdN)GK>Kx1xSYy!o zd_fQ~HMNQLWAyiE=gz806#F(x>cx^qX)pzXNw{Pc;dJUfc*8hrO z7_uxYs$!^?WokB-hyW0(0$4X?QeZS>rr@ScER25?hM`6&NUq9snaJk&FVtTS_J&+8 zCsfJE2~`$rQ55MqWA9yDx_|T9Xgj(dJuuMi=+BY65hci&AgStu6cZ-l+5EJdL3+g= zEH-$Mhl8+_CSG@$;#x6lIT`;#!8u1w zN&2|&?ndXy_e~XxplSRGu4&jJE{<2@0bwqyr+o*Y$5gyp4}eJ@8lOCJWX4X@e~Jx!C=s`J=kJ_Ny{m!j>d`M13_tG z&Cl(cYcz5_|0%+tHyHGd4@%dLqD``p%R>+R1@E*29Y=Q~=1nleSxcZuAc^B#*xsf-zKcL^Ic!Q1RMdG9E^4;YA;xZJM2SDcNFuN z8uA)pnoWUxG#pvC5hLY2aJuSYYPjl0mZN~;%*cuPjaUnDjtODg%R<;T%aznRn{7y4 zE#;VP3$g5haxynDZ#gpW@UDdx16{etIbL{fw+^4}fy4_JS@;f9&tAA_7n44^(mLK7 zJ9AmTmEO$K7;t@PE;j@(SkR}@+xt}l=|zaHmf(0fLqT5<8YDr*KhBm3V9Nvj%g0Q7 z7(Z+)CGn@Dc0JtwfB*M?7^+GNaG+WkZcp`aB|dD{I{CFwJ37AYTi^N?rMp&TfgOx- z=WF1g^XO6ZPK3bIuySU97L^2{`kt&HoyuYHn~X`d_9Bj&Z|+l5mKYSCyoaEA`#Z_v zlVedS0yM;!KZWCXso^OUNF5n;8&W6KZg(YkZf^hD8s~M_RZ~ADgPB43tvIghtBg(R zI%DOXjG>Ece5QWm|SN7{iD&%Dx&MJ6b}ZnIu2BhSO3GNy>nh&o>(9#I*$L zD!B#S&vm-P-c>pslrG;$vGc2{Rjj2cP19PR*6_ljYn6tsX~V9;rHt#=TayVM+}!&S z3WIivSYtaBPEa8ZniRa4Esc>92jaMzTtvw;rFPr~M8?8b*(%L>Qa22}PvqDsg~V!q ziu5S-Ge|Tx>fI>q^{QtCdQVNZ=LDtG_k5_{GkuUA`@idu6_o-)QrI5vh5?MwmFPUW z2fZFWhftW2teAeeI_XkYM5LagUF0J!r4!S37%0?(9%oH=?7jVd={+JKcC=Il^{LRy zz*3i5Z}7PHmnntOtl!`B^PRrODg@s9j(2O^3@*Y8%G7n@kd-{FO1MMx&hsX-iA=a z)$58nPSXp6wuu9WaKpxOOjVQqV6h8t0)?IV&7?_^xXl$Zng&x**vBXZt{+cN$F6hP z#zu+npy{4%`@UPQI19YuMy2ffzHR$d>r*OzSUqmV{d)aSPS5~* z=$XjT#KBFU7Zw$Jl$vZWX5ILdgiE#3p-#B6WGmF+%A=qF$ZzhXqN;ugE~^!6&$G*w zPl>83t{GEnjl42Gyn}DLRi^>SLtpBhqg==3xgWTkdmabVP%zecAMNsV-RY;z&pxN) zt2wX0T@XSHp{=jrgSxkRpJn5vZb$c{*Q0l!51~)mz+k*j=_Sq#Fc2$@iy}$z{9^b~ z^A+0r_14JhALKrbLb8>m`qlP#ho0znW&m;{7I63OB@|jrhTd9Pi(>~%K7XWekxelG z7tiLOz(6>M(eG4V?Yr#@+$Jbp%j@H+_=ohfdb{;Nqg5HDct+o|CMMsyISPM6nobS{#LQNHkTM{!#+rxu$Ma@V@wU z&y#i<#M)hz^)SDwr5lEhe5bbbtr5OYmZB3cl*wn%_aooS`z#>Q;w|m)?)+|WA7w%b zlaO~5cRQ0Trt)D39O13tl$eD1ubvU0n0lACzjjaRU9EE;@5n}gL)#XjXWKm?Y&*ok zkFnni7ZV0xIXcHLYy9J4vB*7_PGDT5RI~)8MT{q?>+wIsx#!X*_xzlf_v(-TQFFe> z>t4Rl%)j+Vz224ZwJm}X4(Ux2@JErtGt6((t~H za;I)8?9O} zf*GSsP}~#*5#M!+77C@0PK`&1%&vwN`8MBe6EXn}Pe(*j z^mP+-oz!=pwk*?rxK^tXodTHax+0N!2je{w#BlYVJ$odGw|D*X<7@)`%uldK+8#xx ze1h%M2Tc1~x{eN#M|O+Lu0hCE<1}p=PJ_WOv5j%iMQA-kz~>nn5dcTOsCK#-c2e^5 z8YZDL+7yMF`iS5-MJo33(=_fgx6n>>7aF2J z^1B^(nmB3sKoh=8Ow<%ZM7k|;JI+K=^{|xBQ-5@Oo9o1KLq9DhDOmV<)6Fn_FqW!X z@D8n0cO!r-JE4`PhoQ2HZtHLJu_P<1Lez)1ySGysiSp=MUDrx>rZ1>08J|VB734{7 zhq*LA`{TXh_S_#u|lJ`s^cANBhw&=n0)K+jc^QmdnZ`6fH_UBg17Wv27(W0x95c+DTz`rBO^M z%}(kghRJlN>yVhZktE5*NVQTBkS9fgMt?OwqEuYf>m@p2Oi|WtPexG`#}yCI8^BZ= z@Ut-*tQb!u}--O0$t(b|%3xIS6ch9X|>$p#s{DR?&^<5%j(Y z8sm_A;Yc+{leB5kYBM8hR?TB;98&%Cmf{h(9dd-D5-C+RgRqcs@HmhWv`DHZHBAN) zlgj?!VNaO0y<1#KHV1D@bGH!p^L(MvNYh56kT(>?NZH0!^()Ab$AD?uLhNoH;&B7K z`!d0m1=?Wl)|w-eO5??xc*JXl{?yS_wMry z2;rAOcYW?UQ3(VW4bVbzMkL@8VEpe<+Lbxb>F+RnyF+}*4?p((aC#{qlSBM;OPd45 z;?&dAUStaW34k2QqS=#G5KR&rZK0eTc}SJgm^vwA3n6*y=QjPxMbtsxiQh1507_dp zZqCRI4sv)#?7`)jWi1g}t$7np)G%9tl4|tdGu>d}X{#rXTpti?EV58pao)m%v%%na z)Q+Q%A5P~jv@mLfSx1{}A#Ruq9FtSUBJ5DOb-XW(W}tLBaLTRKYSdp`lZHgZxU@Xr z285Z>R^jhw&q=(TD2nF@m%YX@83;9^4DWK_8fx`^IDW6k3+M=PuC}#|Q?^aKw}@}Bjez*oqb9o==q&~ixHUWe_v-easM$sP)(2@S@6`P*PZ)i%dN6UG|& zFY51Is%Itj0N7GX)Bc0k)Y+4@@gE&j_hi!)+tuL*Cv^RjvW~uJ&4EkYtMphNn_DN) z8FT}>p~s!A`KcR(l8|vEF?OVE*`SjOsp~bxlURBDgr}0)V3Ni;A?QgwB5)NLOl zcy4WN@Q;B=Ne6lZM{zPRd1-b4z3cr2UYw5T#nuq*K}US4JzV#rH&s(t zbBuKI=)qbeR1j4N7!3}K!6s3-gV_MYkZLnqcOt6fv2KV;ZZA#aW!DAIE?4xV-l|I3 z_P}+^T+^T(PfOE(nm6~e&H7U_vEw3?-PQ!xG;rPWBg}(PDgLZF0Pxr&W!D8w;}heb z%3rIT(-%bJ>zXYz50?NH#L`@ewMkswg|yrp;f|6CPJ<~I|1?9?Y zYqnBet4N!8@k$^WhWn4MVMu`@D1}K))3iO)GZ@cI@6oi`D5R^itA#KjDE*@qo&Fh|O+Hqu)rjk}LV@`%sawRBN#IMG>_$yf z(jW*F)p43l$5oUd08KKRk*jFf4^+h_7988Vcdx~SyQKPothuI16fdBLVwHHq(qnG9 zX5NYFRbi^GuLlY%@uF=M4b!oNDQR%!;lqc0M%rO#t(3N!J-$*7aq^^q-#LOZhmSI<{yByh{FD#$b5y zBoEmHOY6ziz4G_jbPG+z!}c*&2GfKxV;A+PmvtSrh4PoY8DS+2UIC~k$CsF?!Q!Y$ zcTGlxJKW!3uFotr!KpRGOg2{=o@b_DSGISW7MR%ar zptqvuT8FT^KL|5|%{cM8{b~_-6++ZjTD?mt-yz+L;@k9ot~mLt{Cnp< zrD7aG56poHn5iG7zklY?PILlYkM2f~p{LQWqVLoggnbS#^@A{rcisdhr5FG0&{>Kr zP#w+JFtSHZAIAR|fp7*5C%;gA=i8b$teIoY2buKIzde5ty%Bu?edSFcQUWRhRQp)R zgA(w09ZKePMiM6B&cI!l89RN!*129gb*9y773m%(;2;Vxm`{jJY-=GPkDK3&ULvtF{XQo6gZ_m6YrwREVmg)Pg+w;OG`8Ip);8*(O(f7ix@>~RaT?8p5MR)>XN8bvH_Jkejx)PiHxsYC z9@EXp1n`55>h+z0Cd>7oW+24ATOX(N0Rg~SxzeSyTPZURARf4I{q@%`20o^~{%rDL z8_X!D0l?hy@~ljQ6$S%{w?6Z>z35lTa!a*pQ&Y`mD9d59IW<+Y)Yj={v-#EH^wgy9 zpitlai}!x??tYuS)4_rW@Zp?`Wz)Z`-7E;ZWLLM3*++zza$MTDsvWPV=lfAV?fJH| zy_P^JnfV|OR`L0AU|Y%36E1w?lacQ9oj{j2C|-LcD5&j7R>0e#DC z>bm(;Q`ezTOm0bvg~{?yyX8)l%2t1KC|%iVsQ=;|CVTtunYym)=J}t7LNP%WTEo6| zA3_(=H_#uVzePU>862pNr6OVeU~;;EO%G-pxs-|g;X$QslKNi|_z5~MYz?<{;&z<2 zvERwYot}q|f*+lHA=w-fim$alWOs~(R)qmdSEdJgfNX_#dF#3JPKa$KdUG6Cgv9T` z;pL9txE0o}?h^*N^`~2UmUWBw>ATyKmvIn;?A!|h?nP1L%>(}EC4u}*>i_j;qksE# zq=CII;nO;7aCn{*<~m*>oFAeP#bER2(WGe$PSr5P~tG2C1&%#$J7xuGJPVWf+MD;_0>2l$AebayP&TxYATO;^;7$Ju8^3UXE z^s4{sHy2U`Fy1DN*;yw+LGz-Fi+%!X^PzAP5PrbbNHaMEg@R1 z^Ysf6{{egw>nmdN6+}ZstpOSk>YWU!T}u~z6i)f6N3^}}Zsyz|Ybx#Jl{T8hv`EFf z_|eRu7r1pm$0^P*DEg`}omV@iQ2ipX8RR;8?ORvBgN@i9|GE(3Ljo(WR&dx??RSLc zRT$-_Km!jz&Gnkqb9BaZr)SmHO&WtBUQO3qJ4V!;oHXe_PESuytLp1;fz2Q!p-No6 z7s1g%^fnZWp_aTYgX%=%%7?EAgtbH2>7sZV-cWCP`$eyu_EvOGJ_w=Ug+gG$ChM!;vvXyo)R_ci1?bC331A z9q8_Y7MNf{K%#x)p_%(NeAZ)QI6d6}b5yvb7ZKbiY(%6n$y#qJ2auv&p z=9E6y(EvPg40bxUl8PI&K)-g#I9gjG_KWD0*E%U zwpK0PQR;&}-295_)AnQf(VH@!I72BAiF%c!l6Ay{(if)AsOB}3OzCzanrJ5pe6(oW zSZWJvVSv9B)EN>}j`dC%K;&9*tug)|`Adr0pyZuUC%#|iTQvOI5%$HhdKiEd)tJfkR=)0?210>3%gV7c6QjZu5(X;lb!rRdlI)ksY*&1W?bD=OA~Pwi%f zQvue292t)ePPm>YDLFR4%dn5xx(<$AoN%46+}?~J1(^y^u%}WVzi(NVO5sNvbGLq6?^K^-!N@Z6AykOeE}5wfEf!(?r)z6# z4i)Z$v6|r}^itcl-p{Ih5HA3JUw6{bE_4Rng6=_Y^gd5vGqEdlnYz93xIFK05<~{G za7${e1h=Dv{H1`{L{gWq`&40I&?zmyaj$-~eTv=J*irr7UNJr%fx5awV`o}Y`~8Pp z#g1(DJ{O{X5J#JcdR1`F;6tb$(ulQdJ$!}X4v@w!ZuRu7=rQywOmBnT%t&3ZoUMl; z%B`4K*9aM92ne2JQPNxZYH#GTdQ09H;&!ytE4U=75#a{Umd-Ia&wg*4lTj+j5ta4! zGB^-hYzPB3MP+aQ1p3qxb4Mk^{gy_5ltgb4UzU2)KX$8#QgqCN5i+L@aFc-!On`u< zX5DHM-A7&HWA$K@#z_Az&QD!;#YviNk#XAl|7H8W{nHZWsZJ&UMYwu2EQsAljH-v` z#IJHbGhePKOn~Ej^Tz*T7|&iRIu0!C(WoaSe~Y^OnZE@$XA= zrU~1;s%$%sU0&j@C07*nf^Beq2Hx&r?7a>0~pI10B1z5jRB4!08>oMe5OZ8^BvtR_;j^$ARF>8NBFXuT0W zvNYkOXzwsIvVFNZ*f#=b#xnW**YD)d9*O!{)Nb3MZ*V0iosQ(JH%D{vB=h;EYxYP= zrCr|-*F#_O$$)`yVgvKQYB%GEV3$->?>GPQ!`h{dP8vX>xIO+OR4xR=@FpG3bHv~K zZK|pcQ7M3-$+kiV26t7sD03OZ8flGS2`E*ll9hH7PY+*RGPHRpd(UCt#%9u$y154algzSSb-i;n`lWVHgG_ z<>~49$REEu+ZI}pCb@tyc%xD-#|h!NT&d`|u2T$?AlGZ{mGs4}Vn4)J|7d*a7&`aE z{%7l_ct89a+J=rr&=icZM--y_f-sJrS~vSI%=I5BX(oxo{=b!iYrBq2%VFqT>)Vz- zKd)Q1f2|XSWhy(4bJ6}IDMy6O09YrbRZ znd{gh^*Q6)CDZi6T+X#DH{EV9 zBtwjRgMu8qx;t%O_;XkL(4je?Ao1+dN#oxzO?#?X>|is!PP3!Z6TKdw!N676W$x3# z^~&S#mOU5r`wo6+6e+Dwrb=&nzO48=@Gsj@|Fs4O`~7~ur9b`Nmu#=hsB^mP*)P5K z{u^u3D|ts?{8fbX|<^jC>Ek^CNhd(De^qd+oK?av>~B z2w$!KG4#0e*C%z$veJSKmogmMqPA_@|7RP~e=cQw3fqp!x#`%((5XkeX#B_j_>cei zkE;3gRa9?rOC^VMr&MzDwhdt0d88t;^=B>G+SFSfDFx(f`a`n(Vo zFzIHCKAz55>U6Wr;c7JqX-LBRq@X;~nClU7oir1`7n}%#P~F^zgVamIv*)eH%|z*z zqfz}JiaszQ9y3WdYb*u8g1%!13yC&1NgN^s+*RU3Aw|uT+$a1ULscb(F{4)Ef`8tG zLuJ)(**+?lq@v@18w?D_U4QQqxZpTNNn(Vp$$m0*RB)W4;N@t%B}dxmzOYHD_U;ON z>O=k%XEI@OB!7pf{GYIof7dh>RRz#@5D6=+1h!T3xaQRGwKWXFR8jWe z=yT152Yzn6Q$Ei?Vtm0}#n#6^OrU=i$6!p^jH}kDiS6;DX6N-s2rjz{|q2^lOXV1ZDzC`dbf76VB*ZGFltLvh?c;+Z2#a>hn3M zf!5F+=soB+(Qlz2MJ6sM_yqN&*&*Fpyc#+dxUD^b2V-MscJ^v38*i|bY%h)1@P3c8 z)9%FRA{}CvaCPD3O2iMd1!cB1Vo0=$7n8)rk`>_KY*Pcjp6w^~cDPw^ zH%}SDTvAWmZ~NdLKKW$DcXJNz!wB7L>#0~UV_+GB%gT62g{dXffdirO#=dsB)Fa^1 z2;)5F&j=wI15jknmg~e=0D7zJ6-3wUm6)?`B2LRA{2EY*YVv8qYx55{r=nZ-U-GJ(NxDysqmi4y7L=f0FwT2hoWCy_nY&WpIrRh0Nm=!Z_ zXcRzSDmQmU(XM8BNe7^s!C7oE!q26>aWDFhw5mPXtevAadH{V5)6enU+zP`a^a2El z<1|xgC)iz$Bxz)M=Q;pBxj#u^b}DHYxEZ>(lwUEET$^oKw_V#2mwY7XVVGN|Y%Zm6 zhzU^~=OR;gccBLw`3lc5#{58$HCYJ)V6JN#RAJ5TR_*NU&Ubyb#yRo1~1J&$QSN5 z;&R!sZKqt0m;MNie|Cj#!?r7xdc9Jy?Z=0)cQxSubXX7Ghvv{Kx)~vNdIYNkc%66= z0GmTaRnp{>_0u3!>|<;&0SjsnPX^?Fgm%N$=RWs2Zdn|c0WYRUXC?q@wWYWgtCw0t7+=0q7v;dC;m7|pU>_!orCb`K&ottt^THv51;6(+J!%AC@b>+IXP!7q6WLIU?8V++D5Qpn7?O z=lx;1Jr_Kn%nx8?)pEpUR?Au8Y84fabg9*9c~QJ$(`aRIDXaF#3Xrl|1?md$P!6OZ zy!8zj!;8p3MKpynbQ_B1h7@Y3tEU)xuZU{VTcfD0#T|#(y3_6GcHN?%9HZd@E^v-C z{e2pz9r)UwJ$v}h9cOpWOtU?E_UvKPGds`j*vZH8D~0ci_dcRuTYvNHj-7lLy7$gU z;yZVoUCrVzclDO`R&g1783ZG=fR@o|^lF3}-QKZUa7+bZyUmOj;qFvBDMN?9wpvP> zaY~Xf$Zfru|G#>MmtA&QG#?vS9ALA* zdpCwC>UQ@nH*WmzmcSW4fy)u!-tn2gB2qRq@CUq*ZQ-qqHEAA5o!eYk|Du% zar4$BBSkP;5QLqrUI;BT(Y5U24-!NTCM2#V*o#j9zEr4Ia)p9lD&<{``+1*pZdv?f zjD-lLuqrAn))F`YvdJ8z78X+~#^?PY#B6|Gxt&FwI^$oNx3Lr!Nn@7~@JLr>lMqrgEt6ycVEmmkD~wW+Oz_<8OYPG>%lMnJ{Gr>FB3yAH3Y#C`$banv_&VB-PM1^AV0^F_ zL;f5clm?#}_K-9^Xc&LUG8{VJ-QS9 z>M`u<%Hq7S1BtTci&Ei=9$kkrc6NDC(&oeYz|WOBQe3T6$_kU#`2<@59vb8&{TNr1 z<~ejXniB$OsTm*8K8fS{e{GCTCNS%6VAhbT{mGtC+}=jAMb06?aUl}7!2-U;nVpLw zDob&>tnYVZCiaTJ5 z2YtzNo~EBWE)H#iR+`4C9WasZ8A!cV>y(P#Q%^nR`t3`~EwCi)Z|fU#wS)n{3N+Qe*l>gPu)b#Mg*6?ftD7({d696zae1#r~K43w6(f3f@4oJXPcf5<-E( z{`csIdAZccJB`812$oKoE!vB&Me7JPjH^i-S;cnfReaQ&2uMcQb-}tz%G4*>PPc*ZhvGLQ*oT11nNKOw@>qjjO~PW)01Fd7qK?iXy$;x z?71&s+pg@3cAJ{Hn=`t;1G-L6c4|8O1SOq*@oz!*{DM>2;|>GOLtm@3gNcO=k76e|z0H*>@o_!m9vCW+TuD5Ktw6Y1F725|4z29o5j@nv+Q zpCAV-Va875)Ry2iq0gz?s`4n$C}+ZMX?^@4o+ma1r83#OwMVJ=-cwIK1>=_lrBR>} zYt#2Tr-qb+Hup`M0~5w0=nVy>llR|$|Mv(gZ4{hvE6H#wXR*#Br0j8t@QRnN2s^Q`I+kb>7uWnpj@rmq*LL3 zaOJu7%bj{{CLi)-{d1G58qvg=?K?0u8vDEeFaU-+`bD}{(Y7ILnTvZjBSK^)1 z|7QTkrK%|K4cqoL4S@Gux8D}^7GyQg1x@wm>zLu?<v+Tv8g2jOxv-|18gRz|9!ANJw2@eSXMsh<}C|AnXWiarR7v! z%C)vX7fcg^_pCJ8Dxf@?mX%lBhitjeht(4*_(#^jdXCqh%m?HfP@-G3zID0aKuHpi z?g}dkO20EoKfR=-;v`qx*$23)9h-ou=(;ki1cCTQHda(H`(T>TH$mC{+E8T{zM$*3 za^v_FZs6iNiWzu`R%(I|c!Yb!af9EQ=k-A6bSg!M5ZgQW zP8Zw74ccjjflUL~tHqkbdKq%ieeebPTq3EvQ0v1)qdRbG$c71l`79|u7Y}hg_p_OW zadL|?!RCC=I%+!7rP#ZNj-&JFKJ-rX0rUyoqx6;=2Ms5|up;-$-5@^);>7m7o02Y* zX*VN?2F?uxz&6>HhhR@&L(KfNNNhv9zO0}%JIj*h(hMdnTWTh3RRkBt0v>ZA5UX#o zimw4;gJ)ibWf@!FgvhFsm)F*w6Onvw5Wx6lm}yzhT)cQOz&LoaDYSIH&WO@#b+Q&t zs8-XljzZr^zHf*_hd5UY@aB5#K6V4p3KzY)W*U^%qqQDJ#8c5KY>n`(+|XN9)J8o` zdmkvLAeCrj{SXl(A;1riv^SAuQg+_m5Z?N~tr3=CgeF-x=i2yxJ@__;RDe*P5oNZN=i7sJD@}nN(#3SK z(*bL3O+e;ODl@JwZh8c!b*b0uP4-&7$sRzx0-ttt$nxdTG`pd&TeOlrzlr+_8`3WaYN-5wp+iE-A^ zb2f&+ul>h}8}pgt5e)JcG0&pF3#$D-`OhJn*scXW^fx1dRurhO!$V77A`O`I`~Bmm zxwuIN@X>is>auUnib%dQu5!A&mST&G+AeTBdfaoDl4ks(tmrkzgM~{RGMFy)fDrK| zz9xZZDHU)Zy|(&zu=Hn!!88ye#sh=t(wDm-M`!nitRuOdxI2Oos-PLP1N9NI7z3uA z7+{hzJqeu!3Du+X$e_c2Y=^i4g~F7vv~)Ny#Me-%CP`5jLeGJ9^nQtF(0kMNtJgQ2 z{7j`n4$aMC-0hy6+rB+pu5k|clr3vs|GTAZ{rA>SIO`(bt>kX>5W6tp^`@J~`?lF+ zt0v8BN`FbyE#F=e^dg}2IP*8rY$kCy%K{WW$V{AOX&9^PVK2pbRt=#|1*&1tm$~JdCuSzO?TV$N72WbgYb`N6hvs=b2mxxf<>dob+qUh6${CDt zt7d;CXIWrh)`a((0Hz6G!Vm`m#&h$l$_)kvmMt0>^zkLvKHhV^YfWT%jn>-#)=)~W1ERevNiV&Gah?={GHmWd~G4y zDIC&zybnT_VE}M^I7t)ug{7)231)WA=F6dGb9*jybu4{Tw>O&rxqQNf z0357eP#wPoe;_j^mya=`DwBIDme^$q=v3RjU8PgtxwReT$wO%JBxsB@JD!g&&=*@HS&qBsMdOb2g1`2!Ckt3B$PBt56lr=$9#<`GU;|z+&(a$G>gs=q*FaQ zL?)AvHsq?r3su%&mk?*VIKqEZcS6>ZY*h_>h8ZyNgDxb*z!{aOM5*1iryV)o?KC4= z7Nwllhby2~nZeKAT6pZS$4JEA(4lyH6$~Tri$y;$45+S59HJC|-H#RPaWYwt3ov=> zt+x^|&0M5HNti+M`;{Pv?(&3pOJXFSC## z#Np4Q1-WheH)fZI>Us9DKW(8J+8(=;SA$13-7P@~I$15XWi?kCritrOa(xs<$>Owd zOE%Fk`eD#$s0_wy5R=#FcmV1-e5}z3Ta;pc)A>k|Mh~FNV%5*zYgHWP(AQgtQDQ?Y z`zU-$@#e2=Z6wt^ba!?^4c?Mof4D+ZRI%W%b$M;>2@Rnf^be?|lfs~nJyJf};aZp1 z_Q8eff$W*D>C1Qk-$q5W4c&q6MUSHQBLu$qR5(rEaF_-tJ19CTvD|cgflm{u9k)&R zbbE@h;LsMtX$4``bjvFga|kGIvYU0YD10AfJM9n+f(Ub0_!uF3eLBE6_;ffv8HUT= zHv7_l|M!1aL72h4s%QDWWulj|R%qEH@i*;lwwyH3`#rZube&LYIAeS<49PV(Tf7ah zjTwO{pct5@`^QDcfpvev`w;|SVz<0$FDm;@#*hx(U4k-5*(Mf*_#3P)xn% zYce}DtX~PUc_IKDm<2R)FQzM6X59ppT+o zM_)iA^m}NQ)@&$61^NL3YZ#Uo8?YP$E4PwtN2)sm(vD5c;d0#wJ*1=KL!?|reNp(1 z%x7Z{v|5NWLvRqSudfFf2Y=)=EE@arI}~KA?82h{9-p z)++uKKVI7}X6@8I zsspZU&?TGTT=K}VO}BIeJ!UVf#R5PO)ZaJBwXn%7$81q8Si}Jk0s&qOG}!r3VXT@^TjH*{XR0fKV(m;1?>$Hy@j%`q>fqfq4oDI6Rkl?{|UwaUlkLW!twwp3C zDj}%s3}&cc^5YcHP$B1+hU>!b(v7((p((i_p&4CjP$`cjpz!37te}1`ln%Q#z(YkS zO_IdZGYN+9`Vq=uZn)^}=(aly%qDU(_k{;59Cz`il+_l5_V<`#Ahi zy$%rQHh5B%ZBVjuG1lY$hj<|D*Zu5GH{H~mdT7=Hu*ToA9UH)QY*^vHte?W`)w6i8 zPIT%9T2BrSDj!1x8sBKLbIUQakDt=BToV?U-~S~-XU1sOgb zf^8RU^T&*x_?_cg@Nr?~EOTDQT6^J}=V~nk{H^SqQWofd^m~l<`{goufu&RxJAR`rCT^fX|P%M>-@Jwqu z9+i0zzb1y`eWm(a)-9BXJ^Y#^s(|eZ^7QC&ZC=}}x(lf;UQ{VTKrM=Vc-2P10iv>}< z+=H;XpJ%z^iYx4V-u`3R{iyNFdHV`GKmGcg>3XpsW-?1W^C?MGZDFwOw}}VvF~m_G zEubCfQ#smUe&lnP$`CP|PkicwMGk2IE|{bje$1uFtluBphTrzf5nQ5LbVu<&8h{6g z9Np)M!lhfRaLI=L&Y*ZiV;RYdcps+uMLdDtjXs6Y<1MMe01EFx$LHHX@(n2sCwY(n zhLWYU1(P=?OIz*5Ob8Bu&YNVyztDAxpqX$n#q05j%{a~`+X%@B6)%}SK%e-Pv8K;# z)TB9j`%~as6=jrzZhJL=VJNbKC0ft`z}A98fvlwZ2Y@PtlD6nkVih^(M3rU3H$|~n zkE>eKd))Oq{P(9{mCxsQ^tNBjP9lp*SqdVK7@RK{2uj(;1RB;~^CpFzg97fVsw68a zXaz1quU5G1jG>ZwyIOvZ)9#+o(!|W>y$*V#>bOF->pP;Hn|^uMu3g*F7Uu3EbYf1H zV=H++ZEJ)V;Tvc-I)=`or=<|IVc0k!3Bz=*!k`WnvSHMA0+X84cA^q;LwB!bki5T# z!2ak?<@;G`usO{nhM#Fjt-ESeX1Xv`B2jl<5gCAfY`aTiKpdcFE_87mM0!q}F*Sbk zsG-{^GMBA1b2Bw~L)CQv9Jd;$^IToT`>W&cZzlW$XJN6rKaL7LekbRx4w$A;PE&*jc$rMfr2QZ9&)vr z4Hg}(^)b&6O}ow{Nm@_1l{`tdl(jGjJ++W@{R*4orYro>?%lhE>sp2^5!exQ!dLJX zM^&lrIL;8TrVy;?c%N5|CXU6Gs^6Bd4Env`2Z0ZdilgDx-jAI)al*owbJH?)I)Glu z7C>8f9M@4*x(14>>8^v}=8A1wR_TzU=(=sR^9JWe{(EQbSHI4ei#~E6hEi*;e#$IMQMxvqOczae1DO5Um`2)gf`VYK&d8$N02X~3Jl{OIq4yE)7XGWlW`in%qbb_ zOOV{RV{)6?SW%c50PEzYw1tHQ4$B_#NO^7|-8h9CXMjNMA(|_ymbvYB_9kE0wrv~t zWk=~}>%fiR26`%Mtd%~Jl5PL_RsujK;r06Ja$;IJfy_ihCKee?g|#w5Q=k%O^@$Qxr~KKTv}}JjiT0@kv~LE zxSy`6Y$HDz;a+(eJAnEOVyMx3udeGOr+-7dtUcHU!tojl_}}> z7sYMpzF!{9#-g%P$Nzc2kkeUOmA|?UvM7VS{7_ncC|>b%)^g~Z((iZzrk6m^zW!q9a4mbKK`5X^QKA*?&3{AB>Ee#aET(zP$ZIM!3@^N-EDzje&r!5voJ zGdn@JV=_Q_%jkrEgb!SK=iZ>#cl7#YCpuS9 zsW-8#Xy5Lj|3sDq+HG@DhDPb%%o0_*XL(HcPjxnL3Ss8Y{%TmhM^g#h)lG*CKH1}b zyf*5g`z;0|#_KphQ^q`3QJ<40wZIyk_K<6%SecQ5b(`>wm z+jj44h5`LI>us1d;DUSu(bPm-e5VB1Wz0}+z;aGc@mX`i9Og35t!=w1CuT#> zX>a!79FZ^wuGOJZR9_1eit{DQqEuXLP)UV%4}B_*16TuRCFY&WwBODQt`Q0IUkLL^ zDSW+-q?3~_%Y_wP#Mvx%s}{eAAAu1%j85BJ@yiobX$z!2mnWqCrcCKJf*Vo0~(#XBm7VF9d9%CeUuX4B4xFf$E+w-i52^O7sYNa|}RE%XFF<$*v^9vKN@s z@c|b{WC}Jk>Ei`lLtl1`NP!IUM5+>UC8zlwf7N2_4drrg6c01bSPa0&>fAzWid&Y} zS{zzd%G_efbzuIYc@fNIhsCdt31Dcd(Go;8S`&>Y|ASU*<|5M+M`2G7Y>x}uw{M?j zSTg$rx-MJJTyWgdEwdeUm>jtcUsMf2a;jlyIiz3_J35A!kbx>_kyAAp01@2{Xh(u=WY#ied(QgE<#;Ke>1Ob06dIy(VDu8RCR@0)GHMXL0R%pLx~`Zu`t9 zKl#b$yVSIVDa+b%yZ8-5DOVc7XJkLbU{*~qZmerLefgTEY3rQXHsfbMO8ifL@{{vd zo3c!)X^F?m_V*%}<_ACuDsPS8ui+&mPz9YtcU@l*tE-6RkbhDY&|9*Uxe!2SJinDD zvil~3rshbsofr^u!xa)^z5H^i2Y|w4CZ@7?0nz@AHXT{3jIyD+x>LD zw3rL7=c*=z;Oa7FvP32%e2mJnX__WI-T9NGI+7j}!RHm#=XeX==gY=l=iqRgrv3KA zG=A6BS6_V>#{bQSA(O3A}HYy3+rD-TRI`l~id zXAD$Eb9hblYyFzKrKb`T%dL^$#~@(5PLZgz6QmxtGgG#`PQt9$BFmSaxB&@X8403g zDH(fC1zDC^gLg-vtl)M7s((lTSg$kzTd%zTHLrP%WT|Z^{t%^NAmI%UUW7jRn4YRU z`B51V6R|!@%w!FBoMP_@P3v)Cz!_X67Y&Bsz16)})8MmMSOBK5j6IYpJTxf%Ou3x% zN~b)dsCpg)w?8HAQHT(UQk*tBj0t08Syzcks8O3qRDIdm{nJ%T6MS(L!%K_6w-LYc zkKTx0$$Mc(N3Gq1>ro??y3dm?@qKD>Q|J@uSw%?n1U0$TTDk+I&{|jUYSnK2n{BTN z@!%g7F4?vaYxQw!Yk_UUrM0!=j?=a$SXMTXzGVPs-&wus$l7@83?bImj=@@mHuUY= zzlZXuiSF!GYFkP$JjYT#VOMP+hW$Bpwdbh9?lBpNjY z7jP@p#^P6Ed9@hUfld(o7PD`*Z|ko>RD(~*(vZr-O4{V7 zF=g%@lN|~-LtuqRVXT}5%d$3kl`|t3b|-?lxel&1DR)-}$iaI}un&&-s-_Ke2R-!6 z++BB#f4Kdao}&+bch$Nz{@Ix`XIg>Wr^R_>b=rJdi4ih9@Kf@*r_o*L*ZVEnbYcK+20Iy6)h)QA>n3MuH%k*2A{N>?Y4`kUyPMANeAxbs%TTwV(gztB;}I zL@%Q6=1(D6py5e$+SL9er&aaeLp@9gCc!FB8YhP@*}BQEnjh)LiajS zdT2(`f@l8bYWaFRHQ#LHXRjz%tI~L5?J5QEUQtdDeRcGytMJ$Qx~9`t_D{NdZ)pwG z+HWU*=!#Z*(ygZl%E*WAo>W<>+4NONp{y3uS1++LqeykqEZL3Lkd8u`73Ocj*PZCt z!OK}MYAo5jz3z%VT{{Xt`*ChjOLFhW*00-=_9gziGMdnJV$*&DSFG4>-mbfcW)v;w z{P=tDP%1flsdC#D?=+xGx-2gk#xO(!Ya+oH5R)P6dX5(G|gmCx{Cj``dzJVsW z)yU@+;P^JO6p*JZ6QT;8qBR_U=|DQZ#CowALRG4R`Ox`|^oN7TL>~yWZK_!)67QVb zNwLtxlkm(Is-ffP0(wJq>0)A}w7ru{J>qAF*=Y3ZfYBIMN+HMFa}B<3X1{i(Z|+Ip z+?g$I3Y=Kkm$;S$al8x+bEIEIvN*V-b)rIlEs~*!%!#(o%%rnLTFAeqGjH`bjN@j*G z!0H!CspC$EptC8tZezD9Y31?9<=$_;AHLNuiSU?#2X{g#6rsGdy8Gku=90HU|9z|9 zD5g8|yEBSnCbxbc==5Eg*PqqD;AHR6-U+F^0(jK!80ncN(Oz^8-G`83NK90+bE?Gt zT^*WPv!rx;YN}*yI^(mwDIj@X0k|=j%Sl9)b4vtcrAa|i$if0q6xviIOqOoEPDod@ zWOEl``F6Xh-+g#D3CAa<#3w2#ZL(~jhnghN=gOXd*sLw z_39())ze3g98s=0qFy~z)t${F5M6nk^D3}O#HqC77d{aQN_*_{?DL}sn*Aa}1U_`6 z`w2TGdbHNE%Ocv1?m-VD1gLECcGnqXOZOB`wB1M23U5NNC<3F!fsqad3$Pa=pa+D! zr-dEp1KL7Rl%&S>IG8%Cj(acKbaE0x_aaKgb8BmBYw|x5>oK`fGT$+mc&HcPFWFAq z(t|Tkoprg_>%$h$^|8xq#2pSWpC^aW`L*xTwiq9l{m}5_J9&-YkI(ihB&u&M3%OW$jJ=bXRyWd8skYqx`!q@b7a;6E=eZ;c8r}_&) zd44-Q`=dGY9*{gQp4mrO)pVYbg|B@NOfyF*9P=0-yOv0CI8v0;PQQZHr90!VbycMK zJN(b4P&`*Drb?E-qe<9x)Q3w4yiAmtxvZNnmyo#`iG?ft3y)=v*b(0TFwI=#Tf0WM z0;Te7l~|VF7{t9oJSix>c=5|%Ao(_6$eB0(9HlwF)b{QT8cu$$T9r?GjPEZUVa!?w zD=t$61m7CKbtplbLK9(8XyGdLF-4g>TI)#HA_rU!krn!>i4JmaKy}Oc_i@Lu-K+5a=US`P z?6j8Jie;^=TT$$;0Zto+wA(?Li=yRRb>PlXE*AwD2Dvk9 zYiFz-k>y+UfC9yP65|03a!<>PU3rAr5wg%SXSnDy5|}#^x|r5!#6%7oL~(7w+%z?9 zV-hrQhFLU4sp$%qWVy1iupoqO zFD%%$5ZgBf{Xl zOh36N+{D-~EqFoKuQ9I)Yx)a|jsq)G>`UJOQ& zR`rD0bB%_RoWQ|KzuI-SR3*w$Wwk$=5UsDf@EtpG_7)S{_9ALxd(r52<(8{$Gq~a# zeOoB&>af0brU~PX=kkNU;1k8cOz6=%x8-?XXQx0)pO^cTYt{ka@)h<9drnt zMYo`b&{OC)uDy?LM9*L&1j<9jRc`L zGnwIA@lxps%(se6GD%Xwy;Q1?Uv4Y6-1o$vr@WH~b6;L8z|C@Q4Wr!3E4F zI<+!=A{Q|`Fb&tpI}HO#O+$EqpJ3pc@8v^bkSTLl@$~HMG=4PkfMr=a-}L3z+IM9N zJO<=P>)bM$LEAW&mmx{Lom$4H-bm3!d07niXm{4d#jNId%xZqJ-|xF7rw9M2!{LxI zU0-nTU@#aUoNBH;{UHOmx8LvUI%D7elSISeP}dpTKK`e{fVWS*8|8>a-p#UnPi(u` z(3;j%mUi1K#Jt|zB?K#*m6*?~zXB*I(xjrbG-Xm!bdXB4%U3$`eE^U^Z@;z{Al!4$ z_fn9%s@j!--X~aDzweE&w$@eCKWBTu{$=LxtfX86fU9x)d@=K{V%jpvn8Z_?TXUEQ zJKjmOqT|4z%nTPiNQky_SLF zmWpmxV#r`lN-T>{-O7U?>ej-#xURjRvbF4%lIwt*E#D`J=hQbP%%-=aJWsAhudptX z@oX6`+UijD*oEM=Q1v)HRc>+^U~paAwuLY?5(XFtA<;}BY}|0+#N21MdUi3#{O~!bc~dY&1E_anLjdFyivqxZMGfl~+}yB)(Z5 z>Nzt1E6bqyWCcOD_s9?%{W+aLrgxsHwA&``$I@0u(fhEMdZ~|ix&9Y>k+0J0fW0*oi`cTyMfg#bDD_6b4{ulxhY5J5XoyNCvXKhmNB@`qrwI zZfZ1m*o0sarZzB)wK>N_?Pgv;26c>@8L0~{Z zMk2CA;f*_pu!U2k1OTsqB!>Xbz_!gdzVVHE4jyZry`k$mG9F$pQcmu1BCzc|?!ZG) z$*~aytL`#Hp^XOBZEdHdQh+tbTIGDza!h05p#bCHp$Wqbg%}XSWCK!eZ)IqZ!T8$`sX*^T@%Sz4 z!MD*2I)yM$#>m-bKIonu||=7Hjqt@SnBgKyNi_G{32bO(C4rwy;d)WKq9 zENbW*Ni#u|4bxn500iZ#gajP{M7fSf;*!h=J{Z|-w$m_ix-y+5-K6=|_$!S!n&fNH z`@dbg4bBzcS2#Dgq9~T7C<=#fY&*x)KgD6+{08tR6<2+xT2`X zjXi7mBg#qN8vg*JLc^GwyGueZlXIB=lPLP^sZ*y;J?=B&#z_*pg!%b$Iqz-AldA0Q zjNqH-5V{PVMSXOu?N4eHbbzfEbDY#bz*gFvI8N(n>yba)5h5@N>1vX7Gm{z>k|O!n zp_izu#)M=fOOr56!Xzb$^^xmnCh@-uG32tW=q{x~i3sSMx*lL01>0BeK%@vtU0so7 zK0LgA`}UQ4?^P6K_ip9Yf-yE9-!(Tk$LjZ)69um)d`(r?2{>T3l-|8M2k_M~=Vc-ebXS%rt zcVO7{$tI3)TRo4ZQ$tW{#X$hLI*)nh23~*UB}&4nIAF zrsfc8L?5V$-G9gykqV&`;xaSh`0spiJ%KYf-E`AlE-Tg+a)qI;DYj$mxrwpsgJQ|| zygoBc_D?t6bkiQgvDG!j5Dp+)k@?=6m}#=U=lP{#a6MxPAtcwgk>5hHu93?;sFWe( zB$&DYGg!>H$MJ=sGuc?VTm)6N@@)v)(v8MwYr(&nXG!i%-n^kRIdaxCt&t62k1TTm z@{As$0|Rwm1?5$)r~RFDO;IZZo#}X1FiQ%P8KJMQ&4#ly<#a$UIu0bKKjV5~=$}4)dS=Gl zeW0*n+P)1}@WlNPC~gl?vBVsMZ~%I`(V(A_+-F9*=@a@|oae}}i}^71g_wIzh9gDDE;q;-+|>vx`eRN zF}efY!i~L?v(R!M@Isw;?5T#S4s4u?7@Aa|0v#tu5CT?$ur2-vu&&HnyyTA0hB|SI zex959PR_L82~8#1YZg_NXxChg%MzGY?hLLl)TD=xK%JcuN3wKhe)NpnLy!S~nWEMM! z6fh{yadLg4w%sJXk2r3D*g|+At2aIvlqSLf4l73g5;}>qT{z{$PPcFP&-J*XqqrA+ZJUBp#c6S)&-B^1+57IfobTu6=5xNEo2UI`3J2rX z)&Q&;Z@YUql!rluQV~_cklApXFDTt5S|;6g7qZO-A>r3e$QOE^O{l*=Y!eUQdBjl- zb@1xz3;ht^5G4peVk=90iKGshii%0sMN5?%p`5CDL}r}jzILn5`UY<~3Z-Jxlj}CcY5)2g75*)WtK&a! z$6RlFh5o9=@}Z!#5`>(#IdpG?o{5EFWfzvjLJ|+Q#LxHX2Z0vGIw#UG)Al*~47wTJ zkKTmd#YGLv@DJ8V_&l=FBB>hI4uY-jfTud64wz{AfOCUbXbv1XLQ*FHl%YAra2CNk z@Lyu4a9A8A#44U&U0sE6F=^Ysytr}1st|b1K5}6E534_wJ7usjf0$$dtEsAMstPbE zCW^u^M6qZZhFL5IrU^K|tlD;-iG#47$6%VlLBaC2tuA+3?h*L%M`*0Bu70uwwk^b1 zd`_6R!%>C*E&sQ?GNUN~4$Hu)# z{Yuoa0$e>f`SI+5X#%`rd3iZo^x3?uO_{lSf;sh;#0-Q{u18;0g~Sc2!+DV9&{*KR zQZ#SKiF3g;gJN#XE&$MGMxM~5cfYQ%mfK#;mGeDRLv6IL=aoExJ{Z#*r>rb(QMYFu z!+Nq=+{}$ami&dpkgv`ZgV4W%7G_H&K?rmRiIr-e9g1r86SM4?j<3ZndwjpPE(l6- z5a2;2I>}jcD${zKNWJ8NGiNwdO(+!+QVook_ndGBzVkUwJOdj?todS<8fem-4Aere z@Dw*rd82VZ4g4?e%r~?TQ60^ogI1_{8i6M{s%pISjnN0N?E?qF!`MkH=p&HmA z%{12zLR*qv^+LKiQ>9;e<4j*T(+4Y@x$rBL32Lq<`8HxGI`p$qLCAIe&SAgpaJG~# zbkg@e{3F~cHh3K=WK&%!`Zr`MddC27o5vOeCAW`XYTlXr8vdbotP z%L|cZLfCee+4lAZfcH7i_x9q;3d4F{91}|1<-flQ-ZiktIWp60X#M*2+S(ey9{3%^ z(Wy~cQ37HX@EO^??WZPS*pb(|{fM{t*2H;^W~$XP-(*XHY;UZrG*+~zy*@@u0S_r> z8(&;o3#n^mA$Wl=<(AkQ!K==7qZ7z;<7zmMj?xSHS?Xy$xz%`6w>AQowynBX0x5yh zPG-vv`LwT_!8OM&x1;v68Dy)Y% zal>qS2F1IQ>Cbf}U6kG-CYZJNyD1{2)sYBkQo1PN^S(p4f^sT;ddsqsL`Vl2n$ay) z=Hy6E&&F*z9DR0i>Kuw-ShWCqKfjwd1yZ_d?p@G)b3Y?=;$_tg_G^ zVir=BSI-9U+;$qqaXUt{wQVU2rE$q*Z*z0gEzOPgAllsA+%Fvy;h`z0yWZjX`T3bo zEGOiCN$FQzuGOE{aK(|y4<9*lL^*JzC*KDH*E5TuHy+8?*t@~UOf+T{-;HjQ@Uqy& z3U%SvwvL$MR#@{0vwPTpop1c4($2@j%^c{?7PI^bA&YuxvW12j4 z8UpJBU*&Scax88Xr@@&n8r*VCZn$?Ft2rQ!_bL+BCJmYmGHOg}SW@=J1GC2D-G`G* zRKWZIapL|KcwM`B%i@+}MF5fIn%uI?78Hw9!-djbRaJpzS?D6k-qHeJf3?=Sl^iyf z6OZ0IEf5`%$w-E1hIQoDL39H3*Bj8|jBBYX#th(Q0b6`UvF#zRZJYTKj9L!*mj}C1 zR|2F)7uSs)%0a;QEmv?ZrwcOg(wQ?apE>h@gs-zI_9>N_rF&%C&iAO(0KsH{j(~XZ zV6E$ldaIvqpCXh5{7|;POL}L{_+R+9v5hll&YW5Pr*F{vY309a9P_4D;yKmxt68{* zTDf>-GH%ZvfUQ>2#A!>yq?QuyL(Gpl;UY=#PW65y2=&Lk&8MG!8k$eT2wd0tU>I80&#&vCS>C zZ*K^oXBzMo-C7<0A~~M59tNPi^Z2Fj7JhIw)cP`&g9iS%wPYCSdL+Z@j9}x^e+brx z*|dyH*Y8zyNxIM`M({q=u+=~Y579POEovf{69W`B|J;Hu{jf9QG@hT`V_*d7v(xgn zUcj^04eSif!piQW$?t+Rft}QI_1=c7s^UT(o0cqx<($#@%<`DqKejUeC`a+VbVV(^x<)gtDw>#i*QaDIp-_Hci@aUVR(SA8jvU zsu}QlL!)@Hee|4t8q+Pj*gi@C)I8c=#CoW~Hy8tXWZ|xPpEnhqG6%||atYJL#c&JZ zz}?@CtuitJ%viU&MHDGiN}YmS3pLHNGWJ0nZ>*!ZX1PUAE_z9<1=A@fAMp5PB)OHY z3!B#W$%e6VK9_39Mg91e$@!+)rx zxtZJs{lQ=`Al}ivf1L^tPz7RqL$0@cy?zrPWn?=N8y>!GAGK{Ks9ag9wmUxJ@7cAN z7Svl*_0xjeIPIhbMKFSX{1n@Kd-ynZ2)Iebv(g53-L%28 zlx`z$-~-57x$!sN<*`S7y28H0uio^6jfhJD1t@?%^kcQ=#zN22=_3WA43SEsDIEPI z@rO<6P0Qd-mejSfw_ksLMmvFk#Digq8b!&%%c!j*p{syu>I0*M9{4<>-&aF==~N^O!~Qo9A&qwOq(WNiZ8u%DaNK*!aX)yPix0%0N*C6 zt#)sJHh^NR-KvK9?XtNroV_$&!gwjZbT$lgJ`^{B%}DJYYNGwp3}<*B#Gu8L#G?9+NdHP_pIEO||pNJS7*K^7j5f zgFKTPs-~$8nOUY}=n8KcbO+;jo?|c6H#d0R7;IUAg6&)X zNoHkeQb3EE9lF3#8qwwlu>o?Z7D39F!P$RD<&?h76ze);kh6H?@6vZZ^w2{Z$rQ_G zD`$8Iz(=$Xv4^hU#|bsZ)`jE6xhWvFnu_IXhX1AW&2;&WN`tTK_&#&^C+b;@=0J&? zUGE)s$6?-WYYASiAvL(G8!Q8Lq9b)@epri-9NB6ms3ylAH!M2&g55j`gHbr4`mnzb z27;>YlS_U-kyWF(01*N9p{8v&wY@ax+-VelO1oq9&Jrn1P8y=+(qm3oaVwRIp0A!q zM{gsH)4P1b6jyK)>411eG!1|9J7AOF0c$4?Wz@Oz*u#iD&Q5d>LTO1G5SaIQ zwc~aiCkv`PK1L)CajJc?`HIsVr`11Imt}E)7TT+!7~ZHBQWRBF!%o?BvY}ox{ImSD z?2|+h!v>*ux&+1?{$sV!YMJ@O?%p)vqh4Ed#`2f$dQKE2z#QJneKWyDg`F;XAzCKM z%h637V6wIE)4;uHwoP^;Te|JHUfkE{27GjEvvDzXh4>9BpS24qdE498lMHHsj!q%-w; zn64fmjvEao7rYR9gF{1~suncr{>73g5iF~~OasBn$Pd;mj}7)(IIu-%YL0d_+Soyi z4(NGLvir_KSFNllzFH?Bs~0-ZG0(4#d|ldL%F4=BFu=*um7>z#L{>P^ZpSaQ+HQ-9 zlFg>YE0+@N`_uV9hYa42ilgPi^A=KdSd-;FQWG+;Z2iHtb8+dl2X)&57&=ta?(}rz z%$=G)YKr=nC;9$c!AJ464ZMz5pJbjADW7eg+B4yWKhAlV(Y4I z0+_n0+wczROb+7eZz{H0Q>tMZ%=ejL8R{7FrGJ2j@C+)T80|x^X#Y?J0K_y%6Va)y z)EqB5|JXn;>Mra#N?H?p@l=Fg{veEPUDaoExm<2mS9N<=#kOs`Vi~HDV4N7LVeL#_ z*Fh%yfeY_ytn64@+p#jM8kSLMw^vr$?TTR;>ZQec)NDreqN>~a+`)r$x~;31=0*4a zk!A3wf$+&%Ttz$40rU!VDw-_$5q5!di*s_-h{hVpX2xa(TikO?^vO~!t z99zLdf;E9``1QyqqBeOEBjQ~3AU9j4t~trYet&CnaREV5m_FYI4Q*~N7|z(Lsy?{0P11F4T1A8o=~{5wYUUxw#Mmk98OIJYcX)ZOzlkeeHqKJe9AR(L z{A`B}4}(5Q>NXhZu+H1=F}cYAHvWzzKIpQq#4@P;1^76OP;q=oIxMPj4O9mrZ`yFl z5B}ah$lkOIdFKJk+O&&j6}45h!9gfxFnHpLCkpnaZ9iZa^3JAJetsQIe0kb`iV-}8 z@>W#kP&C_kxEem2oJ_mEP*)0hsBtQyM~dQl$9US82*-!RVH6Eald(ZQKV-}_Cr^RK zoF@wQ`NKNlyuEQqHw91Ld+)t--R|6NjG5+b#V{=1YnqIG_K7E+uy4$g>IN9WZ?nu)|si08hampd<Fh)g$>`CHV-zrLU z*z9uBt8YvW!*i3v9_DYkg~uK|cegt_zG)QO!(;(nCrwEDaWEOO?#JV}qy(Y{tP5Q+ z*kG~~SA2q}eCJRcTqd_CWuu-S0LM%IrIgtvyYMf6Mwx~T1Oqq2aH|qUD+Kz|jY)SI z2_QW{zhBzFzhIZ_$tVbdEHe!1N2zB?2BR#P}ijo6|PvOJb5g(MiyTB zrV0-g27^Jb2mjyzIFqwQM@c)-GLtvIc=jyp0RG-i7SK*_KncYGC=3Pm>i85^Cw4yo zvc$gq!WpQzvB(i7{TUL~qYzQb+8Z&pO-fT{Cs4F5e`w8L z<`O&H^?&r&=<9?={n7AZ5mr@nyyh<-mG{2oBBpU{vfC;r~#xP0eXw2E%%$FY1lu(BF zLH6in_^XHCxuR>N|cTr&h#91Obvk zj_}j|$(B=xNY)!%9@hL@cFN#?^MBssKO;8)fp`rH1vp>zA`kAEDqZ)KH}*n_#MhuT+`H%dAF z;Icb8&HIVS*uIDnY#<%g&?=p*zP;b$W2Z0&lyfp&(^5MPZTa*fA$VIZxRyk+33{Rf?`S7bM{Q1+byb?O!15u!r!4TzJ zZrLE@xf-~OY$T@W0$ebSyFLPEOF-PjTZmf*fMFVa#`=cIS{Qq^rl`G*;;Ow&HixF1 zQK>!5csV+0xo117NEkn3KeeHq22QCy*8vx&*y$_1bFe0<8aY~!6h+D;f$05vUd}Fl%q;^F?G*R^Tn|U#-XU~ZQ?RrJ>KLA zhq&9ldZd>>pVN0j6CwKnr7Be)PLMm${vzr03H#zoC5l|CW1YHDRH-BlGCIbBayupq z2hDJ|dv$Bio;1y?YCcW(>}g%y?P4~16syumSF1pcyDowk;nT=OVT7Q?XN|^J(xw&( ze1nOGpqj?q6N8v--YA+=A^<_e?K*r}@Dt1Ptm#)xo2E7S0p+K8Sz*Ujdj3`CFN1ZY zMPkTl1;401e9$zfUo~xco@M=lYR8x&^V2*%|ElvJ3EG&zOp5(|bI=A7J@0{El)pFK zsO#X5}f3;JeVbq|y!a7v(uFc7M@WUcBw zJ6`}WC36w=#H1UO^b3pK_|sH7 z#qCZZ z!jld@a7=Q)`Z?iwm(juSJKTv$OtN8MtQ^Q1mD_bF!rOn{-h!{d2w9P1H%l7k*@`W4 z0}0m{aZm^L-*VZeqiE&HXqqX`CUZ@v3X&#H!^jx>BZ7x=V|^k7POd7tPujNt!3dSS zX5hGe9;L5aK2K0e$Aw$mSNyJvT68O zKmA6L8@0%AT>XbPjJL|>cjgTs2RoNz_zYHE(YVU_#Cak*H$zr+ze*zRX|@sG5(vK`)JYd9QwXmd;JR_2>cm5&c)4ITZH zdHsShUk9DXlHp=ppX)uvk}+-T_7caicxnFUzK1R~k=+%z$GrQC!kU>f^qJv?n`-28 zIiN%=xv@BIq>lVhlI3r`d3TOrPx_Rv>%D&tlYQvF$EOV=vc|2wosKnwn)#3!D6hKP zsON!k9dV|xco?Exy5Se`Ljs~jBPG-arsvNRM(N==R^?<*%WAxI=;Q>}><}NOl%17> z^1`W`Tqp;!7@r>8ujp(>;u%5IR`3Dt$3DQx)^BHxFCgB#p7v6Zi`od)0H9~aV??7O z0S3eAUB^YYPW}kWWmL)_*RPE>suZGpgMLu2`*2zC|sfN44TTBX)8olbV!_J~OJ(vUvR)50dKk ztNP&C4>c2~uGArUe7a9_n+D^2-De{O=IMLq_SLc`<+$N3hZO$YG#~wX!8dmEAZu!J z{_m7*M>^Xug7>4gw*EY377@rm-Alj$5bPTqJGy2_EErrGFJW+jc4wbYGnK5}olg0&-5?b}zlyDmI2D;oH zeo%i{f6%b61JLBaP+7|U!C}W-2d9%s26KJXVD97>GLjD7uw=NO1emJW-&nNpgB5QpT2v8R|o|ec<7(qZR#aG?K}q*LdAWx7j%EAt7w>e4?(0!=sDu2phBV71s`c z&9A8p%T>Y@t#D$=_gvB4(7u9{X#qrTX&AeotyZgWn2XpPoYU@+=Z;nQjqWoiLq1=_ zNimlzCRo(^KI^Jt9)?iOVN+2jMk7vci~+gScitGztgf!|J3EVGdltR!Fw3ju^ML2( zX6J(=y_2b^s}87&`PI$gYQ5FH%WcN>is(mkd+>g3s_X+0|&;$>rTaX0MmcFO^{SQI$DPzX*zAF7qKfF3wk zpx*RiYXuAMS}twxn3(~HqJ4X>+M5bO(J*)riP?}Db_UuWPrb~e5=MU|#1!aj?vX<9W&9a!P z7E}#_AcjvXYJJgnR5f3o4$7sHpLIG^emC9eWIGQZ*+03#_3O16rj``d@O@KN0^j$R zr%HMr&)vfNVT9_jE#W-RiKH9CWKswk=+JTdNaMywM&ig-Z>dIg0hW|pEe_mY$F6pJ zCiHzp5ES1JXWH#uOaFeVAgJlA6JE&;u&km&Wz4CSN+YsuN^|)##T<;l_p6mKoKn@P zFsxMl8C?+gO7}z@4WJx|!&Fux+oo!z(kR z=lBkZ;#5yKB=U8cILmSx#W|agV!gQV#**VGJf96$Oy=h*gXbD6yJj2Mj5H~|EppGf>AJUv}a=o>K9gBNAo znB67Imn_cgl;G(d_Sd#v+}^?h>?SJn`G8zThTfcG$KBMu4L7Ste12MheDx#QQOu#M%?^;g zx*^Xs%G0d??2C;?qdeWJG+Tx|2ew~h54EPBltY_L3v7VNH3;u?z3i2=UT3ZbflL3| z>2&65_+N?E`-~rE$DsBthgof{eM`fRvuIu~5Wj}FOOK0Eydsjayq3oQnC`^wxIHdu z(-BJ45><@IVTSbDc35AK1&+kv`9xD_k=R`Og&nQdR1qv@nplQp z7=LL+Bp8R4h_ebQB)FukCTZkgi&X>O=BNrkOKdwo*%AaB0&0ubx>d9tVHw0l5BtbD z;CW^e8!~JfblrY3$MljVX!bRjMjmv6y~$zbioTPY6)fO_BUC}iH|r>Y})~5xQo($hL+C*Mh5JmO}6k_AOD$Sgi?|cGp4r4B~=#*xpDH9M|So* ze*E}xu&m-81-oDu|EmVc`)|(JMcIN4OO~X8Y)u9)+P2P}I|n)6#8eA5mUL8RJYF-# zPw8G@f426r3(k|-_8A}cQ+U>!w!YJ3L(7$eZl8eCxyjFbJv<8axi9dC*(JjWGPDb! znlHk=!|J_)HsAroBJdFS%0K;cairhxCy8-6i7(HGFo<*Arfx+8C8DIr@Wl`oLe)|_ zGBegys$OIFD}=f(hwz{h7wz$85!pcoeZoYmf@CQrq+0>jObGNGRGNV?>O=+Q6%}v# zmrF}aAHKb^uu!>usIy-JhE(grx|Rf5r97r+S#Vyvkv9&9^7(w<2k0dA>h|Wv6f65x$#JS+=t(Kbac7$VABqVs4WTnnH`Ea8@MA8lhjXd zi5)V=Y4Ve7Qw>5mD6PM3kKw+4dAD6y+hl1WR73|s0+lHeJVwR%n}#&|I|0t%b(NGA z4+JV3ld&OF0lXD;no$%Vn1evQ&zs8`r!!4sI+vB-%zug@f=5{vsDqI$>qD;6a!^~ zPyQ1`LhbR{FCLdjG8jh;Ejq<72PhR{d^i8I)J=8Z1_IM4bhjJzD7@vO$co{r=a*9r zK_m)2k;-$)#@1F`H?Dk>hr#v2O08Bl6-7}D3QKNy9iU(+ilUh1TCH03T)^H<+}>Zz zyRW_WTEduF4|A5u!@I(|$r!noH_g0L65j=qguMexaV4-UNl-Q2P>{k7pcuNQ3X)|7 zm3ZlZhb4&){2krjYE2szKMdnXE5>xIwLcESIYThrK$oHGVvXh?D|l#CVALbn1*`xX z1Rx0<&4HMKVT2Vl7|hPv$)&Ya4YqjFbaUA|ja~Em-y6{-g_m;$#lJ^44D)%)pTb=t zyT)6ehxeeR=q*9^rL78S0>dO37C?M$9cDtLZ~))*k+_JIssS1DcM_SJmTj)A^cLnF zoAEp+a;vWRzvqIoCNRe7wb~LBI2FadlW-!(^UQYU7kVozrfr#2eq6b%m4i8r6WCI% zrgMx5aM{BcK98b#eGrq2omy#VZjnSIG`jxXA$q^4G5uH(!_J*I-0+5yoa01M?-%Vx zXKpqhyR-pM>7vNx>F?vePZ(Wx*lF0-H$< zqdKp`uZb@}oYG(bKg1m?$&oRBpJttMuNlUjji494S=*LHRZ~@75Upx;fdP=Ca7yJO zgnJ^w-PDv+J1qOqoXaK|SkS}Ri*Migaf z$LMckoc-;R1=FUDCT$(Olvc8ozc3WuHA-5k+hh&S1Sm)JkKu)STJDk1W#Rgh+8f0s zwMp{bt^sT0ylEV7O*}1@QOZug{N-t{LVT81>&o?4F-k@9EeO{4?v3hICQY0NR53(? zH3xd>%U^!F&S|}B{mNEL`BmTXe)9oAJ=(ihEDvChsDPOUll!fY-$MJ)b=>j6>7df_ zBT1KD7^ZR8N*S;LMm2R>FRDs+f;fM9o zXUU~-VD*=z3k&BY8qLjx_e9>sfpAo}geFnawIiO$aHX&G?4PHb!WP)JF<)D3CA4!c z4TPhT)?#hmux-x$2g;ghx|7nKY1)L5O9@+;amlb;9-R#h@XBHTt?wg5WxUON4 zH(!3=efQnhaJ|0gHsI^}AIrwOUU4E3iSb5G+ud!$OV<)a0=^)vLdu^#mkQRx^B>~x z%Npa1-AtyOwMXMQ+G zD=?%pJ-icLjUKUj2W{|eoj4)OEsMb0R8(8XFMc1e7hygHEfOFh^ zGM^;%Kz(L8hG-hD#c;E^wtHVosa>kkF_aC`zwF8N%8mp1>%-|C$t)pO4N*j`?DyCl zcJm>=4m$NTeAOY1);Ot?92^v{cjCyU=R15=v-f|Nl=`<=pvm+8a?qQJGkd{brh17s z8tYX{J!ooZhc?o2J6_@;u|~3#f)$04r!YNp`l`YZvDQt;M((iGOSkn7JZl;9HuA4V zl<3>S*iDy7y=7b_z}%&TAC+N;1(DlvyNR#2nGFep@_01Mz4isu`;VsQ=k1+vGh`@d z0<0b_$P z+VQY^88gj8*z@oqPFp86%>ivoygctQ{AV2GL;uN2 z84%g|C2D0W(@KxS_vvlYK5-qhgrw!4U}-URMy{)dPBr4p0usd_g!1L#5u@lBGcuaa za3Ms9&tdDc7{TY_RHbLUca~g+USj2Z3)LJFsHvb6#LbKUX|bCo(C0qIai8K!XU?3Fq%#~hIDPuG z(b(Bs@Xu~;Zc@uIO+_(H!=m3kefqS&(A?QD?m2Vj49A_3q)%IPvuNkOJD!G<{z7v# zGER>x4uh*!vZp&%%E7C;X4L4VjZjkZ9$_QxH6pY7s$i=v+l_RK=oPzQGw$0-pC+x4R_^5X()e-R00{!8DCbdsdg>VZm4P?X7!kSyG~KnMeE`T4SW4R`jq4 zL^t$zC98RGY=tgcsQ25wz zJa)KaZrqt11{**c4FXc55%^ThIuqLvEpDD~Bsz!*W(ZHxC?*yz4L)O{@S!`j_cqnQ z<2b^Yix?%vrHBwtS_EKLH1>omRp{fAl=iV!Qnw&_dUx3h_6WY8(vKJMF&}NCgFfE$ zhGvVEaazEQNQI7u>-l0x8}&$-EiL2SbXk#(nn)t9FC<7l%RtM$7c}j-Kqan68%+Ta zg~5{134-`+?~Z4GWMeoxi?N%V3(I!bkMjwf(}#M!cSo?c&ocQ$9-HavJ*!QA7^>|Z zR%_UHYpaSPhiAKM-+c#jCNK8tb%@$_73b^7OIh3B#jk_^g?6Dclt&7BVEik90q#tx zi^`jkuz}}9*d$RcENr}AJ?*|%90~3O+OsdEnYO%KSS19n&CNy2$pTjJqy)JRoS!Or zzJFUj2=Xq*CXis54TUn#*PAOlnuEXnWxrMv6pU?s!{g_d8w_2z?PJXyE6tj~mtk^r z91L?3m>9eHppv`I_r20o9xL;pT2 zwAHJmtz?`z4AG8oV|Et|xFhaARay|CSe%{qy_uQjTC?eEIX#$L7>j3W-BvZErlqD( zGUK^kOq$2@#>`B+?L$0NPqK(Ii35@A{m7hKMw#WpQ#I_x11K27T$sk)4g^Dw1umwq zmBDsO(EVv{ArxE|^fNpBP}Lse+IGLCZ#pJ$VpF&7FYsD)}4VF0rAivb<^M^ERJT zJ?7c0J8=)oFfL5|a{b1ZU+Mc7n*!Pb2kCL_%k9GNk+uRL?9gb)es zOhvbiJb-WeIjinH+%K7?D_6)0xH;};zrbqd{{$mAkM?=ygX!5kil-cjkD0>+_!BGA zGM%kQ_0%_HvsRDrs#q$JUeaZR#AM+)5mgNjW6yuLP^$D~$C1OYdqt6Gs^=;P(jAOv zM1EODF#hNbe-F~KCJ68uf#atuJ?1zza99+KySfR?@w}bS*$2`cOpq>DHoCg)%t~FQLFzE?EOTdf-Z{oIzr14av!ja4)N5dcGJ#S%^TX6%Wt7Gtqmz z^gFY`$1UElAL~>F93EHxs!h2dTUQFH^_SXI5Nnqj&JvH%pOB440$AMvNA)V1498xh zjQamL>!{z~ss?yc<~VS@IeAn?$PaNwAH;|x8ftj*g915AAz}d&q{s>W$;o|HxFTwT zWqPy*rx^>uUhVL#&kyxi3*aHd$(i?FN#P7X191(lM%hV6ur;`UsKC%e5Uql%kfH~OZ(C>&`f{O2l z-(`Bp2z6&7&_2T>lnxEs2C!{o_#Xe@Asm3LV8cQv=a`y-zTX3bkp4s;t_>B@7;ZQY z+zAdJylr9>(Y@lQ-;@vPCW*k-~ z=uO_lNr*ud!L}5`M=US03&2$C)sYCIOMY%X=>UCsX%dO z7sG0FcD4?O!@MSOzJ<4>{*1}h!{HLxm=SBWs#`C#8n0X)=Ek|0=Nb z=yS5B$pcE;zpe|fHdg_jrSwi&(`18E{wDs<;MXpbElLNnrpfJJO;~NN$}IawEpC4j z-Va}?bR+-C<$U+?m>OL5hb4uVQQNh*kwK_CxSZOq4agvpck5;FCg0HXE!}b8qpzgD zM>0v{H$DJ=1St*lp}?}hI>F=sH7*O|$hsBCb22~VIjV^Xc8I`GGS@yK+iacYy z=(^Ld4`5rCLS@Ph9=L&0W^3RhEsiQ!H0W;*78CLA|}|`=F|>FjI>T^D-E>$5fKqe@PW(u`@1;-clY7$kM_%wKFNj*9%V`VKW9O|ZII0TaOe&Pi3+-|c$Mb#hQhe#5I2KpJ8BkTH z5PU@6--yfLgPNl9^satv^)Bi%*Zl-uBBtTqwK_ki%@?OeIZ~obPV}uWpt*QZou6O5 z%QZ|Q@q(y*y$K1Rnc!!)kCBGzs5i@@lssQD@mfhKM1yA+H#Xx+Y{s2Xb0lZD!$9B1 zfr7Vfj(}_spUPmMU2lt~Q+7lQ!f?qYA8Irj4FW(Kjm9YZ#WjM-2>OA4j@(`@^ogm! zmv|-QQ(k^XJePjI!^Xj}NiGfuK@(&KdFA?_(p9^{{X*V63Nub>ex?&ja6tqa3CAuLvg@v` zudi=72@G1aL6i2@$2Z_Ydy3NNjX8%v*3LQ`uQ_q9Hl|4G1bZ6@2yDqN(OjPux~IF3lT>IUDWSM@iceRrK-tj2QJWh2X~?zlU0XvKqhs)3j8XyNmaj+n zU)+XsTq-bj)kk9Rh>R0J9}d{7Fa6g%k&kaiCV0Lf2w2oKWS@JbkG$9V*<~8 z7Io1+bOkyQ^%CjxYlpdl*FV?hWLz+vEq(#{TSr))y^sOjJp*vP%1Ph07)wh&KrP~{v?maeRLk*Asc*K z3lvEKP1!|(Ut!|!0I=1oWHJVGvF-3=(2ESjhs`@rojRp!rC!&4Hh1A=;8;KH)wS88 z1=4?Q_E7e}3^bC*H~H!>6Y#4(bqTHh>GlE7sF9Qa;DVdPvn-|UBNI#E@u5E&jaGS# zpsNo*yc-QgrL9AIc{W1`wvIE6%eC8=?I!R7a=N;kz>g2~=bVf_i%%mj^@x8{_f@Xg zZpLk5N3KqB@^!ub{OJ!0yd_QC?-<*HQC>O_a?_EV;d#B5T#?dKxJk#3vx}eY8LkbC zpR@vm0DWJ{6`6L;rC(h%rqVzVyzfe6hpdbLe?H#NvkxQ4c+hqI+QDrC=?BVtKjaKX z-_sx6j{I=o4?54aUBGW9X*AfxDx-+&Wn!GLQI9HPKvfu06jz6@^*`JW@b4AR1#JH9 z17(hAdqgD0(a7a+Q{Z})=_1Q;seFD+B(*GbXcDC!PA~j?>>dt1erWW1WHQ)@`UNqD z>!lpWCnldNymvj`da=%fUsQLoK1<^*^a{Q?Wl0M;13dn7*@-)qeP$3;tI4z*($bs* zk?I5W$V#@EdOoREr95xfjhsYQ{7{16@Fpo~R$Avs8%yM1NIC=E_6O6g>_dM0&zh*U zY$y7s^jtgH{?F}CVdRIAB#-Jk2%P0|bOQNMqhK!Rt=8R%1Wah)JQvLG#^&%$ioOJJ zzP#>5NImxZUbv3OY$6p3j!j6h;5dX7i?3h5e|8E*LTsl{kcjQCl0yGYeK$<_TAfE9 ze*?VP5~w@Hq9i)YtCOF7DvlsVyoDhXC$oH*46>E7v4m$h0A%gJE3nz6&wwcbNTPDy z@J%D_`u>;Tnh}`nf!P;yd{I{#%}u9m$$>hlX1+v{D=}AfHOaY(+Q6Xs|;JU z-1r*+uM~8R)2h|Q#cEaKG+mGjg)l4>Wc}NmGa4tdhBb0?8oIz~(})2h(;rWL%6IR& zh?@FAWX+2%+?np;=R&}e>X`8 zwQP1lo$J-?+v-t8U_|IM?&}(LLQwJ&cV5yA7*S-YEd+>RI;P5*WUjM4+EX;`n%P*Y<7 zPW8xv)l8}uMOf(;#zcx#&9!rLic%^2j;kuOj-_diozDOja!i_<%E}ej^$_l_&oEiR zvUrI~*5rAYYK7{QZXm@b>-)g9?Z3I7W{mA)dsPe>#Tkg=ewBkmoO+OmkO8Oe7Ae7p zdErvy$XQHZm&u-O2 z>J^GTOM)tn1x^l3o-J%?JY=_j#6$Qz@=ym|OTUuh{Y2{nPrQD8+=WGSsbC>_ecFZa zu%;^fFm&DYVtSp@6DN{m26#gQlW#A*@bR6TyYvuOr^Ggiyd1&&#=-({W@YR2vkhcAQ;p1=?+4xj6vid$vZTO#r8TMr4^J0Dz=km%1yv8;d*--L1 zyqOnyANuXm>b1x-^{V>~6;eHMV*vqK(y7!PH;@JNF*Zx@wIqy97^i7^Dki$W|LFIx zINqG6ziivBw-7f54EX}?zBaWMUC^hTZ_eH01D{uhp@=8nIE!*s7G@l`y?pUUY zB7vdF@R)o_yjPs4Wi1~=&`^SlJ`I}YmBRj9k4RhPZfKu}iN_Q38)6`lr@0JqvBylX ztRjj1xg`$POj%p_N}SN;o%55~hUCP;ww0p2=rz7U@?yHmu&8V_uOg9VqD~?|v;&hK zi3kieBe82W@{1NvP|a~X`Vtz~?-c#OlB8g^(^+`aSN(k6nU-#U{mRM;aqDZ?wRDPW zPS@-8Psy!0&Rb6qseY&I=V#{^DiOz3Zhwcub9QC!M4{K~?R50+#?`yqB}$dq1i5H? zjK=T*r1A*#8kx*wKuF>|poY`km&w%O(=?ejc^kKZWl(|i#_>_>nfbYIWr7*&)k6H6 zk}sl4RL^qDRLh=)AzVgpt%n_J;&tL1$pGt60B^k;Tu1uXILkz8#M}_JblnIn8{&JF z(;`M+PwFR5=y&ncWysfGFB`$SxiGRQC5A;qUhkkb44(5e&Ugg&`q#6ie2$2Z)ya;a zn>kpmVoFz*tJxBkEx|pFGfz0%tsuq6wT&`tI6@dj+gmt*CsC+FAm61VN+y>iF`ptA zx9l(pBPWLJN+5jUg%>Pq-7enPuy|2--)C8m*oC|!Qu<%k?|x(r9(>`27wkgbS+_s< zEx6AvYx3m!8y?vY2hoH1xfRznrUkB{z{P<3BN%RgV>lSM(z_GBZx}uV zKIj61^=dDMT}G_te9WnOL`FGXgpNXj?cul$5H;S0o$;VP#s!o4xqTXo=))#0O|~6C@ekprsIbXx*Ye#2B@@Lwq0s zb|Z)qZWMw^O(cpSLt0&FXq9*Q2VZ9vR@htkNw{f#e%^ArwHatZVoS=wy{$Il6ifw0 z_N`2M%es$GZmd?TBFxmfw8nACKEyKw_IB!NkNg1B%_T%2?{*Qthto;`+0*&xL;~Y^ zhXYfoRi8~aXZM=Rn?+cxo*2fRR-MBJO$*jhyTcVxpG?D!g>*SHGOY>yNhYz&5t@Ip zQ4q-3a!atnNZc07e_K4p2tJQ8bQSEFDaM)W9~xnNh;*UGB3oiw>Q<}3{xh88Ap~k( zPq_BqOMySAs>()=u(xDdTb5bs6;#KTtV%FvpZv1Df-_?34}bw@yrntXD*>OB^}a4s zF5vBu6^hl3jcT#LN>;}rs#7l%8Npg3d+ zk3j;aP{E}k2y!NpgdH#}<9+sya=EMt0=bD1QS7+0SM%K5(o!7PEP-%*p|DdBp?X|Z zRadvPe-W?oKHF0+mzl*JRaK8yK@@ft3Oq*ys}{#gOLH85^{m?wMZ#_-f}s5rT;-9c*)HE48WtykZ@nq%uc8|Z- zh~L{P98U0OR=9IXYFu|V{%)Z(uSb@DDaVtQr(1z20+5xLTPXiC@^K3vkj8QHz57sn zw{Az${9WA`1)~m2-3ACiet)zGa@N<+4e0Gz)|yScj^>aJmvAKtM~2RY9{8lq=GwZk z*<#W0dVz91-?R8NFdpi0rWZOSMe2q+W+1dhYN*Ej5nEN?gNu+;h4-`Ez>V2m3)QOS zb>B(ZwsUDV*;B+4D3#eaP3^BS&#TSSytBEgHbGxiwu@lwN_@dwST0r2iDU!Hv+7CX zqf%y_g#g?ob4NCAuLI*kzS&HYW;0)Sl~LWAt$><7!$}qVS_sm5JLBbrg+ifFSXfwo zm0GYA)|ppz-x5;mU1x;9JYPaX7y}xI9YAUCvydz(q@y4O$q|Hwkyi){KXK4tVZ6Y5 zR_N`GN~KNQ#4Ek)rtVl}ZoUQhI8d5i@TM_A zI_laLPk9(Bm0s_Fhp~5EZ^c8bZ(@FKuZOX>FkJ%d-C5H3bzr@T@GMeq5tFL-?Z9d? zGCciSe@0a`bwg1$RILKs_qBv=G9r>=MAM{WqIeB3ExvAgA2iS#K?Bs)jL*hBKhrrI zBqjDE6`J%s9$O0V5xS>B7#q)k*)+z}43GJEOWP({20DywB$F*&ku$ONl_c)Nt*FOl zOi-#-MPR2gurwKrM)n!g6BaaS#=oUp7XCuLN7q^*2?R~o>=NofwxOX&2E4}HS0Q!` zx1~7lZ|fkG!fi0-=fT~B=yxmxhwCoV@i0|x35gCuAx37xbxCBBknReB<3VI18L$Oj zOF`~dE)E(4msfr~0stY661#lsfCx|=JU5?qvzwp_N%|Su5X?sg)YI}0t3l%M&PwuV zK6XqQk4R}DX`*aPNJ_Z6aW8-f>N6bU4+fDjrmF5CSJMsc+c(~Lr)@T7DccP;V+1sVPz38BPO& zRkc&A5>Vz~JK-MZCD27byLHfCTwDx&A2>q=Y+#;K{G96oZp`jlmt|d(A5qnRpejFW zv;yL&0wSw~$N9}~f$xWbL^KnCH;n1&)~?wG-lfYjy<0I1bOehUV+aUG+-X{eQCBuckqW`lzCqFmPsv*{6zUFGi$JNaI zF&TKA1hb9D389bBqFWKlJU>nSeqZom=NJxD-7PBFJh-`D(xTg2%JK))R-o8W?`m4o zoo7qAZg-XRbb2<9z1OZY8$%znul3@1cALr7ZZ`*$nQvW^WlNSX&3ZD4!`bkIiRJDl z(Zq}-plBSL1a*L9mnZ+XwK@On;>&pm(phI%Oq|%4;^hXj52Z8Yq;SJdIykC3P6W6* z(=Rs|S0qI>F8BQIL_@0eLQ9mXraS!EM!p>i$Rnzwx>R&A^1LE}#zYt4A(<;XP zPkb~ejI?#85+>V89^hMX69SHBHjuI8hlVJVYgP6iStV>F>Dmi0xmSMFC41l?lhMdOK9chd@Bz>)%zD(O_hvPOZp%=5w-%O)UU-$CwbsEPy<28k#{ZhjN? z!bhzbvrV_Qh2&+1uRbooLsy$Wg5_~0t|!~gxT#*hbge0ajd1OR%s8qqT|XgLrf$9& z-f90(^tS7aN8|)P;IF8?jn4*_`ZLdz^{oL6(V>}%f>!MP;ipbrn87)pm+zw$$a5SK zt43rU}Iwf=xwJ|j1m@j4;xKhxOh`X>KMfrWif`2q7&#ex|TjK)7b;t6S3dd znZYF~=Lx=R=2wftcHAauk~I)byu|JzJ+Cf$Nxt0FHZ2Uv^!zjlLv7nsKGeNMr$oQZ zZM|ud%aQ5cw#$meBC}pW2qB_hEEX*WZ>Ers-jn(rJ`v#Hx#t2Ld}5h>k5`*s$S0l) z0mA1#@sIQKy;7-E>dnu?tKbuZc%tN#vpCpJxpJ{(OWlyq3lOm&P#BP^l1krIvbo5W z^`gsBnCh)(3qLpgs%dPhOG%I`%LlN4svWwAY+Uidjo{S56 zK>662tC210#04nL%lo&pW<~kv_z@0C3mQQjocTN(Y;KA^S?PsYIGR!NC)WH9*cAvaqt)Jc~TSj+@6gcPWhkP^*kYjOlOM22B)d-{EcOnU4-{j#j5NF z@KPQ<*}kQZ4_?U&49@!cr-pLmBmar+rj#;+)3Lqf3BQFrno1DTJP#qU-6v+`KIX(@ z8=Yg+GLE``MZ3PKcH4IH@yWs2gbxQ@>`b?YIw^e9$Y`s2+3TUTOp)idBBxfKn<=l? zw>R>6@Kfr3zYAlH!25MeAJcfr4_%MeQm9(`QhwLQpPgNqkvhvV$7Ch*Vf|5%&o?H@ zd)f5Cap0D17{Rk>hd%~LYAhvPdS^gVtp@(TL0jm=X2y0QI;WX+L(8a_!ZwdF8EZb< zlf`)(7_$kka!h#_-cZRkrvYLz#jtEy-uUljo8JU{Shg&WPsU&fuPj997>2||ohvhz z>0MwI%I#(=KVMdBZRRm1e^|p_Nvr-dzRvUjjEAH=N=qI#tJb?6=^s4zeUyjgP55se zOyD?IQhhF!*|(Z$UB~K=Pj)?Y3DJGNbRE^*EQ7fBdmN79|4=V7P>(t=%*YnT6XU%oGFI`_22LFg8 z-}ePPQkcc3c+mVH08jCk6o%BRXIpg~$5(~EPany@g}VL-cmguy(ZZ5}s|pw9g=vcX z)lL;`Y`aJ6A$xv#a?`E9#9w?tcqi3$knm!9ba8Sr zRJo2pMG?A(#(klvAy5n&q(lttfzwMwGUopX`OSdUp z7?9~jYkl^9Fvs7=bLgpYGC)nG<|QFSiYa&_Z231!NW2dXqp7Y=HTC?GKph{L#w4Ct zz~om#!;9E!N1ZBOSPYn^OG+@CpxkM|KzwMH^Z@+AdLanhGtK>lI>ptWKaCjXgK0vi zv3t`oNiu&#cuF!rum3)o&j$v5+f-tx04Ihs^b?IE8Kl^lO$KNGl*Y%e=)FTneth;K#!&_u z@l-weGtxtM@3a5saX*dgsKy++i}FNaK^ej}Atp$FXk^7H;<=I_f16DTF&@WZZ`} znmUP)=m1c|k?(%BhV_vk>DF@{S`gzwgXQ`LCc>Fogx>%|M3JXYnnuuQBK`yKCZYq> zHEm##BX_saCZF=cpe@K#LhVH3UR)o$5jC!NI_VO~Xy4cE>fEu3|NM?S?&$2o zn_I}v{YaA)PBZ4}R#@6p2vKK#zOL)_`T5RxGn~?3sOy$2n@o?QUSIbT8_j#EAuY~q zYs0b`$60?b`%rb=Ss`X!w+gS$=kunn%V%U=w-8>2o|>C3*|0<=!X!)tsAAGVfrQzs zfk5DzKJ0s4?|=XM->(z_6_xi(k|dR%eDX;ujfvPIWx##7;>+jHpD$osIFA8}XV0D; z?`*vGtU8Cp5JQ5AZ=yVk@*RUGVjrgga7f*Z%)^wQs_{h%_~d9ktv5k8j??F9x|J^Z zkIl`^Kvwgne(aW430UX>j(Z7wt>5pnTuwFB=c3_Uj`dab z&!R}6NB;;4ifZAl@z!7PkJdf^gd}yMRF(BGB~@Wvjre{ADNCGTG~m>*mdX=pGnOh5 zcmqmMkzR2EJr?D3YZ0h^kCRrfKWbbs~<>x0tzDqU)*{O*YdF!^DIOZ4`bq#6FjVjFA7HSodqqqLu>}`r+C_UA(DLq1| zZK*xSb={^5k%MO~2V)0gqX5`3HD?~midc}`Xw}wTw z)%|CN76V`#HdQUpvs7wtY@3;xnK^(R89NSECdvSeS*FHhg=?T%HpQ~ah2UI(m&cBS zWe597UYF;uRI88fL2rz}I$KG!y`6@s0U*RmlI%>gq1Fm{8}Ib36o=@(R;2-n^fJCam2jy6UivPl~~U}^gaLR zfDzNtRSm-F$^wz=^y~HS_`5cqP|KrA^;cz&FuV~tS&9eM|_bp4?uW9><{dZ-@uE(PB+qZ4o_SJ1)^*KlT3%Ccr zg_uQ?b5Ejc(9P&>JAGtA2f{O7qHYCzXe>gfSaFajp1_iPf?Gr(8F6oYp1f5v?D!oY zBoZ1h%@#o$Zu?u2dIaLjF1zgV%P*6pU%|Lv$587B;oYwa!hQs}-p3f%`<~aYV?ZZQ zo;>+4d;I&Ad-CMZCF!!uFTd=To8$9?~ko%T~AY8pEf7% zZ<-UZ-ZUpPZNhBcSFKjhMpsW(DwS%r0`R-%&!3O_6Tb^ksa7kWsMqV~qiYn5B!sqp z3nSQXay5Fgtxyt>b2+dq)b(D(;ch2Na)bgqn3UP#(Ygfh?&Xs8e)hUEP}ZRPtO9(?y?Bg%`={qlP!~4I|P6zu?ZVHgqMDw zND`Y2i*BIsrq$h-8&N8#mT+#6s%_hvWh$ZUUu80?nI|<`hn*ja#i>%bCXb-k*u z3)Ng+j~#!;*k~q>UN{nzGUnJIUxdo|GH~?h(W6H_0B`N)n{SRUP^LYSXy zgl)T&Q_Y)8wmq3+E@A-Q(W9Py=z+FS40L_bo+}BCJdnwnCzCdBz)z9iAc;Qs{Q8=4 zo&50K?|!$6{rq8q{n}9l2Ttkv>OAjbbn(9Q{XGlKKm@8K0ZvSkFQp# zKmTMdi+!qIjeSZEW1o^|Rr(%2)>$7-qg``#34~KlL#;--`o(}~6QC!nK%m^!d%y_y zc3*$}?jC+VmPO&>C1G^%rkf6q?|(S!24H0c=fHOR97(|grk^OjU5TNawtu+&Zo6*-=lMYum2aW?XeUr-K$l*=3Uhg^) ze7tozf{Qm6CgBh5lT@evE@o+>?E7@GZU~3>1MeNhVzEjrTdfwgz>{05Ws_QsShm`d zy+8v9yzjN~*4eXXuQmb9tIv9}77Q)0uD{*{u!eyqd&l$HICu}~DHH=g+p)Zv^Ai&j z6Q*nF3k%G4&FPHC@n-&KX=!Q6W~RG$uWK^<1L?7Xja;8yKWDwmoxF%z1hZU~=?C`j z-yhjbyc*3?zlipC6CCI4?BOhV8T=rM0$;$QkOS#pA?K&r}&qoHDMm0@a z(=`7eLFtklpH6+~uWu+-to({OsR^O3W|_gXGxK5S<|Ip522;Wef3lna*QWxhFP5n! zCvqf*HOSh6!*Jz{Cx+4tr6-*~K~efMc1F{7X+qP^oLRb&3GlwjZgi&Ie#Lh-tl5CR zT2v8%7DYM%0=two8-#}ei6n#S_y!1QFWGq-ic7X_+a-glEHG{U-w5O?HO}d}P9|z5 zfLWU$dYdy7z+_yfnnv||rutVlhqs%sRc=tj4+@3AH>knYs-h2cMIv#k{;rIP6jR;F z=N+9gt{I$i_N?@_3->w82a552Np&Jj!X%=XKx5!|>dDPgGJ>@H`uvxW&li< zo)Do-Der!L@2XTPy$S|)fdM`yy)1Rx%0FD|F>-x|f;$OyqLrn`v$s~O)vC95Nxr0d zt2K#*S&wSwFRImQ)fv5QEg@{X?l4}O#6q!`kVbO-PtT$iv}zT1-H35V>Q2xh(W0cA zGzm8)O`^hoC2AO$F`6hMk?%0!uervbQmoaZiE zQCXFyb#+%uw3lrX+kNVkEb1)G$Da={G0(^~?ZE-uTd&uds@Qi07=+-}O_1V5&6Mm`Kd;X5DPm z>j7m7I5NK!QZ!O$b;RKp!T44D(~?X<`cfP)=xHh&^IwDBhQ5T5pk#4d?k=zATVw@8 zr%9J~eZ5;Yn@Af3V`MLV^SK0*Ku!w8IdH#lwykIsRbop#H=lPs`tu{UKc82cfu{Qs zvGo+aO*ZQbW?~Pob=e;by$#UQVVloumO3gAR%L1#{IS9j7QubM6*r!JU)jUy2B?KZ#I} zMqWO#4kv-Wip!xPYC%0A!b}C_0Aji?>=YDfbAb4FRF8Nc!1pZ6k_nOQc|zuGiD;5F zuL7v^uh$Jj$MuGMx=Xo4>Dr^Sm2!bTNt!F3s5qDgZ<(8$BV^8&G$Pq^1c1zK?*ev* zQi*Fio-}HbWrL@$f^ubc3lvSm%-g{^{@prg4V_1*k%Wmcl+kH3ku+l>Suy8qfX2vY z(i5MiN(dzckp3pUwZl?f*=U_n6h)D>gQ|K^lNDvE)08!$?M>WyMVWV#y&BQv zWNGRdW*A?IgOtY1TDAbJWsAiKA&OvY6SiOj#i)(;p)2i1v*ms0dCG!J-bi%?jCax| zJwdJ)Dh3K={=BtieX1*5D}~?0CsV#pn_(CVx4Lu36<6%oS#?Dya+mvX{5bfR=Y(4C zT=RObs@vP@Gl1wDUt+TOW&i%<8nL8$cn`*(2A;m{TutD{$zfA z6!i1YdOT*R1fvI(tEu|tz?z}JPuj)lXY5`rVR=5&%SoMU%^@DWOmw)drD7T z|7f6SsOc*ZavcLfY0+0SrEval3Mx_j;)2@w^VBe#{ixS#yT*IH7~{C?_Rd^9xubw_ zVaH@V*V&%KS-_#FM3Im!LX(8rH(*0l2g_UR3DHs8ta`R;S!2ygvZKrKgmoMq`gjD^ zXPx9TGuw+qVy7d>tgN?NcHG<;8*f=Onsc!sN&DIqy$7N!vB8Y{_z|h2LzmQo|A{cs z`e;((`e<^n0pe3Pph@v z^w^&e8WZ|QeE%zTB>y;KkPT{F(De+Z#+CMBKY`5*&Bp-r3gxa4vJg9PcWM9r%P!l$ ze@QpEPW7E9PF!=%i4!~Z82!Bw(68FbxIroCNh{5=wABoDu)&>I1qo&Qe=e5F<2~C@Hp&ZUM({41(sdkNr zP(VBRxv^juWWX`^#vdVSFM0-IyFb{r<)bKXTS6r5_GF_m*={F7*j7G@@?prRtn%&9 ze?)lCp3SCh2@!_*D9Y0_N9?XfhiL74TzVxr%qIwP{h)ec2mBVuJcChOFd*q&T5$T7 zTW-NwQ+!Xq68bIWa&>aDGXBf3$SpURoUY{_n0rtr6UqZ~55lvz+;WQ+eatNO<wE_T|W+=DDS74)6jo@-J@js?*a}L0M zv%GMjaNBLSN!4gxRSm{S7qmfCZDEWU6f5`W@;qvzqv)T&??3nY%B5etxAxK=!e71U z#X`5W@FJMo&6e7&PAjrS2(CeQ<6ahXByOy+_UK}ou90ym{x#7`y|&-@K|8OolsXtv zD8w94Lyr`UE2+>)+t+Ye~~T$L#=wW)w*m47=42K8sHP>gD+ z96$^5q98EG>)HAfMY3c`k}c_VRk?C~dnJ7~!co&z*h)v>Wy$x2FaycRE|J{9H=IsT zn?cHsiFD##n>wLbnTwK!ur<_ zayA1l(tHjUHcu~8`r-5X86Gf-ERMNYR}qieDK`sbIjdE8Z`wF;+cs8VG^3}%DUGf| zDDJy`g)x~~k;k27(Mo(Yo9YAUKwv@86Ttx;JPP)v&Y&B^>-IFJ~=xZ6iw^Yzm~-~CaIxa>CfRSa&^zWk-G8I zQ512{rIDhBj5WR9!x?{N&z?Q1>lPLrNWwXlXlA|LZXbr|&O7f+cYyiwl3r8ykl08^ zzTnSNjavNelZ{%?DmaJM%{SkC^Wan& zOsh7!&=HR~bBhn7^Pj+Z^-SC1z2eT~jnWtd()*lQ%DU~;>S1x$auF<7G!-t&LP`(a zd_zs9MGk8uRj<*&Hv`cvJ9Zk&1^+RTS?o+SkCNJ1*tz4DA(ma`;`+<&l#2C=L;#L5 z-@+Uw7eiUgft0x+?t@2uPJBDABe{k~hW#c9Gw4b$4*P|?=|1Sywt*iF8!70Ob|kdl zr?pOib`6&kxHLlOpmJ+FcEQZHD$r^_I-+Lnx!(zd<(Nj0WWbzH3k=h-M1adcUZ2ap zVmb-ZXIKZ*G%Tmu2S6cI;W*e7Txqhd$ax9%ZIEn8+ydoM!vKY9uXsr89NE`d4%0)( zkmi-eKvN^vu8>kS6qBT*c^*Qkn*6V$uIj)L%z~_;iHGm7wqdt10pmnlKy~4{KBl5V z&0GW%<>{RBN8(oW%cfG`*A6zCCyAMI|6;XtZs!lNGm9Mu&pLQ&Rdm(a2++pplj$Kt zFCWCyjrjSXx)@egrM=BIrGMf&P84&dbsElzG&s6Yi?OtnzMw8-Vu5AzDl93UTRbIi zg{vqK}ijMpx z`B2a~6ljEUoXJx9q@8wP<>?gvGSpH(3_cDsYSJbyRR^ARWXZU>kgt?&&$A1)LjGn$ zlAT!u;cw8!~`J| z*Ie^GN1?}Z-Burq=yLrq?ND8R1nJ+Ceh{k4U1-lQ)tvhYl|q{+$~oHYEYVRy-EeLz zt*0spW79zT;VEy{fkf!ksL04QL>~O5CTW&tn^Xmo4=r1t@O^0)&>b8gskt7NIqH9j zdTuQN;5#Vnl6-$cx2-TwK&8u^^P-Lw1?vUFW_+g8nc>VnV_8J3`0R%G?yA}AV$ zVj(8F&I6&Ug#fsOZ^$c zX1pIo(O?usqtR#(MMy?yYZDJ(h%QHWpm%uK*eM+XsS|B)xNGYki7bWGQX=s8Q4?3Z zAH9;}eHYD=|I3`;iA=K8)1@__TWoGp4XMeH73;=1w|KLlRO0H3l@3a_T`|j#)oj;| z`Nlj>7X%M?f3Z|5anGftZe)u7lm+8|CYI&pv~xYnBK!1usAa=M0Nd*NzU_q?lq;K+ zlXEUc07c>0#hLbGtrnEal;#%ZX>W#17CadL!_v}{OS#wS<6e-n_c)CGID#=}u3RpZ zJ_gF=Ijy|o_5HSf2XVB>wbbhaV5gP|5{c7)D;J75GArsAIOR?Qi~<#7xF^EyiwPa- zk}P@$Oh0Eo8Z)KXEGi6J>)@94&iSAQi;=|*0FAP+e&FVt57a}ZQ2>Km(PE(DU@jNh zX|GRZXTQIzVkn9%=jKdgMg2PyEkP;De?qB%`TyX&>0FlKoM z(=3YpK&2dGMWLDvU~5!SFy@qw+@klP8aj(m80vO7M?z#6J>C!wD5)n62Tllr7|5A3 zr-Ya|{=lBqT^ zEj7Z*9kN8hk;OkUHUIhNpH~Qu3U?V`Tq#w6sLwI>xAFo9;HO?CKpaybSFktG3Hco2 ze>qk_S3rZI(Kl2t!IcNyO;`ELZ) zdueL+Q@pjXSFxqX*}Kr<@jEfc#C#n9pQD=|H||5wi!N~zp%l#GuO9}D zi`e&JW_oWVV#7Ca@AM4#{)EXjz`Aw}!{N&sU_Azibqpb&xYT61W^;ajtL3D=yR3Vx zZ(^&pf4OU;PoKo~POf5-w^N+kXQ6JINjBjrxKChsMFC zagI^W(r44_OH%l6fx$i9Zr1h@W&66WNTlj9{2NZpscv`bK$S>}-j6|^qx{vZKUg@>IGQSLSj|`DhJ+k6(&ohdSI%%b9P2|a8P%W zXC;?7`poRk?v(jf>+RNYY@stuvK`)qpL_vbiQX^Ap3QPsuVWbnMD$Rjn^{0&on(h_ z|B%U|F9NpxaIQ}WHraLbu=IE_ef3h|*<2vXiFnyxfTS#fx$TMbDJP@hqu%3sitMG^ zhu#)e0!g;N01%XOHAv3uT8KLgc?gqPbZE34f%sMc&QjUxjX9;6xRM+b>C@JdR%4o_iuDK5gSCR9Vft zH=<72Tu1#~dSn1`K#sqUjr=utaGY4*EX%!25+tPD)t@F*;DMdcfyNRW7RvXiE^9K; zmk(~$Prac>C+s-}c_C~&U%nNi(y}_Hbe;6ZAIq2*V-z6^-w*5Y3%1fH%gYf&)-;hiO{u{YC51VaQFpy`#%DjRw_5wJ zxZ)eXV+2C*H6hlx5S}>bUN4*LGd$@z!D+(G^xnQ1y`0o7U9;^qT~V#&`G75P>JXph zWz~4xfqDWS!%ox-qQ{?I{dku_#syqOE9rswCUr^4Ka2PX*|Ou^rd(qEXu^E0j~lR=J?9Z^Xf)vkPf2L??c5|57u z;HwQ4OK}fi{H2wZHH5%>P;HtfltT#BwpYHQpC9S8*CFE_<*UZv$bY`JhQjq-`_g*O z>*K}t(R0@7`Xa{<8ybaQ^n|7B+9UFNp7Do{wimGxyL$PAKK3}qkG$!#eliD)HZx$! zcjOSe|HzQ&55s~GhxtI@lpghvTU9Sn<^Y8@s1E>qFlh);g@;_NYzvDZ6hdO*mxu(V zo0N*pDHFK#ZH{I22BK^V^~5;l@sb3P7(zPN!cq`n>jX8ZKbVGfvQ z+(L~)L7i7^;Wj<577C3JNEM`De(4i7_h7)16dkoY`Th0Oai^g^_m;uuvY_lzr=iET ze352mhfbC7R!an>j-63+PNY=0+%819XQk)ylMF)8w1t#~Rb~Wb zTvJ2jsMi{WX)o0l&?d1)DQj?co?6<0OJ=x8jt|BI9&5RQ)!&FmYGVNFlnl>+K1AfW z7xW+q>q9ax#^OgoG6DY;+aCtT^-iMZ`cGm7xoYfxIEVP9p8H;I8XG=bc(svty1h zdt$myy1`6zKEj?(POk9#x^Z>+J`a=ezY^+Wcyjz!xM%!U50mR(&9iIqtFWh&|4^|X zhv(BT0l?QSe`Z1oZ(YL1Za_2$w;dG`9861BNzai_8^Y;H&u1jTnLf{+L?sBQW@rV= zN~r!iPXv}#&&@O64sW#dUw>~0Cp5M3zizwkXaxO*{05bB-FzaB`r;&(OY(P|wU4$x>VGsY z?Ziq~>@HxW--aZjBP1jyLLFQ5DXi(*7u-9LQR#v_T)Q`c7=)Lwe&fTkpCmtM#WT~2nRVhlh z#k0h-0}>3=-7E;*2nS}TmlNZexXp5gq%}QjJ59(kGK4}rQ2lrGRkQ)nA(%^(!v=lT zBlg1?PECc&8yg#|tE;WJP9^<%&9b!Xb&1yF*7(uGhY!DF^|ebD#`RV!u2U+16O;D% zCsUX=3W@FhqxZZDP#teR{BR$Fpl+Mb3NW5E?RpTvpFaHX!wo#brIhX=rN69uQ0o)__{Ow3 zvWAwWkp26KGCVZ;eyMUUR~~;)Bm4Ig{_Jgy>!p4Isrk|omac%6-DAc|K86YK;=x$dQQYl3u$^xKKF91cxsd{BL zKvL%e4FKjAE&7&B1U}H}1zZCg!u`hb6zOshsvlL<+)8tMGEEDs{WdeIPOVvXAD-ea zH~y>WAT?nVM$*m~mvEIloWhgXspq9bl@SQUQSe>76;WP+j)%_dTe-uqEYA4d`>u75 zri*wL!u@3sx%{O_`yM`i8A~gS8Xr9**DU5vbv|9T{*U4tt`-opSSR<<(OM2O9Nuj3MKN| zpnLu7xDMao9bX!l(39xj`FD$MW49?;|5$si6XIsZK$ZLnSNpl_yP-uLZ0Yih!pLGB zDecCJqGb2ZQB0ew)s2%h=8pxF3?&;d4EpYZ^k!PG?llA|`UyLZRusYIc*r`c@>p+CM^ z`g}5y7G~UY2}J8wM&3&HckZXY z_O-7)Yj8;sPWtBnYG8&{#hl7Jw$$#>K7jLR2CYfU==uFh*aHQu@WL#$tU@m<6Yv?? z^l0pA(-%x)&S~AU^wZPN0KRYDci;HeP8J^?i8nKQ%2u_2CdTaW9>chYoYzq(&{X?F zA990;-Vgl%5B?H;V!a=doYhKg{7z!*0O8mU-VTnZ2VcOcW*-M4J|pf)G0kfIb!zANUj0>T`c6^X3vtRR#7#jy&%o}kB=;nt zJrRJ4G2Me`Of-@NHWx%euBBIDpj*33v_n;%P72YOXh1BrXGe3|b*!eeW?e|Hk=F(N zpmj5G&T^Y!jP6WzO2)IY<+szPM^9YOr_zozq0-BOR(ZiESeexttU^fT;R?dGWf_3B zr!T%(7cdcn{Zijw@K}DzuNR7t-HC-{J9d0sQzOBAZiHA^INIa5+xE4`Nf!{hjvube zkN?37vLn9h@ZHzzo`RVjJI=eW*F8luiN4}_aRfuOK(h#(r{zI&Ozh*lraGMIS&Iv- zds@I4|KJO3?2?Sx1mlBWP017y3A zlzeqE=}j$HeypYmV4}-aOfy{~`KdS&NH>Nn1d~XL#i`l~33@%}*=L`Xq-P&`gZx%q zfibNMeV~rdHv2>7rfc1gF!e$%PQ8HH?J%FSb#iP%zd&L-N;1fJQ}lq{;6b9aC~Ya^ zeS5zUQ7VSL_br+S4+=_0nWKfwe@1CB)}lQ@(fu7obB~}@^fvphMW;IPi}*|2gAXGO zg(yKtNy5ZV!_>}f+vYY(lFrURMlzdeaMMn^nR=2}8byy9R0k067{Brz?|8?ISFn_2 z89bJa9|d@P{0Kb0s1Ra|f72u@@bJpY%J`ACOo#y|OwwmyUZfooY*D20LRl7jnF=~# zL7!6XHBZf{jR)kHDHEErrpvN&ZB~RvIxoNf=b?oTru)jJdwWTS?B4HZzmtr|;^1>7ChB_DLO4wzKj7GW?XC*O zB`SK6U^(R>(2S!9Mx)j1ac5A$gG>w?1gcNL#@zc%46>a^Eq6KFOLR6VfZ=QliguG$ z3&aJ-MSf@;ZKFMQt3%4|^e~wa!xC7PPI*?+_DYlxv;I%~9EgUVxxb{Y z$FDtoa(7!&Z7YOQXxXZmGP|9=mU}L}{AZW%gt}AIf9W~PV&;P$r>=cb=U?&-Aq?M@ zwU_*?OS$*K503w%-|rJP^XgFEGQVt0@w>v(taJKI{U8KNN|qW%3}N!VO2fsD>OK*s*5U9qOpFvZ7aIqhwU<|Y<(5}hTm}GAi5Hd z!`*dworoz|K`s)gM(I^@;Qac0C@slJnn^5QMKw{%JQSs`g^Tbb3$#)g@&%z%YOxzl z>kYAZP;7@ifE=$ZRAm)^k}d`C@O7%2OW9d?ltL}Fc0vO> zj*$|QZnj8KDJI-ua7z(O0(fRxwH&F`-owRzneSO$T_ujs^plkPjDHSTY4Fz%S1o}TUpu>!a?*vLhhGN%g~%Zr>$ zp%s66fYqwwq-wN)r7^lxm;$D`WujK*xhc!2RJ4)7J9UcMS&NSZ4F{%fQAB~9{! zn&uBj2qACl=UYF*Pr~zlgw^#J*fo2!Z+v&%i(ZSKLhnK!L7zZhL?iTj=#SA~^Ji2V z02MmYCq!ia3EeDSzkB;H-+1MPY{nYH4P@AbPaUpTvc5mkKkR1G?GaeC8_BqDlI-p; zFA11x+?x@IH}&)lbnWfIr?%Fqzj|Q5x?kL6`mv{e8Q&_)zKWZL-m0l@@6=acr;QzT z_*h)}8)!RvHF^_zKl)AdyV7E7mFWs{N5Zh?EC5gX9?hf~x6-Awp2o7-dAdX;nNmig z9F_GulF|i=NR0c3wkXaux<~|J((E$Wg$Su}W;3o6y7RD&HMUPuJ=?bp&W>XMB$Znx zCrHZP8f$jBY5|pnT&~ zpN!vYH!so(IQsZb5MW`{baF9yNwATbDR&LhdOtaUAOM=_!y}h zZbKd|?WZPK{bjpyetd326znGTE9cAo8u9+qGZBsmnUOgkca)aRu!PaBkV#OViag`S z|Cw7_@!=rpv(~AOUTLTaEnP~QG5maTa#E%fen}qgfRrcvx&OA=YE{9yE(}cr+DZ@H z=reORL{(yc)T-Cebpr<~?I~MAsemUZCnsrV@=N+^m}I$8_We1ON;8J00oHY6|Ln}u zzU)xTGu2i#N-~xh!c+5}D-gT7tvxsJ<3H$ZwSOID=ny(fw*pn~Dp>-lG>LaAfK`L~ z1Yy|dbesh^)$pVdCe@Otg*dB2XC6gi7Z-1Xum(}U%K05L8G?B~WtmRHVTS}K+M3}g zZ1;aI$6Gx9!+bs;7#P0)OPnth3dzj$o(9>6dX7QF?mv9d;lqKrf4mrfSAu$$u*ln& zd6Q*g@Yr#2?Dg|G*oO9?UzoH_@UJCAC6IPAsQ=Kv&s}V{(gwxfbc_8wOEXPp<~h&* z*z+wGhf}58_}z<=^6`1e%J|3d@oz<4mddrIrNuqD?~i}38BjT`>n8ruKkKVE9B*AW zS~cQko(ao+>NY_iFeQcAwzkyHg%Nmu18xuQ%VE507sk2q8=-HOBj^0`1ydRidp(>} zm8YIk)ExFJhThWcVQvkbMCZ{f;?bT`80n zc!a*BK~n@>aVAc4dhf>f{tJM8{eIuTKy}L$HyOIdVtfA`440Oca^;e1%TjQK&@$SOE~ny^rDhGiu!Q{~1W$G=9Qj5E{-;G0B|4YdesgoZ*AuhSLWBYr zqLQ=|CBoJ^cdG6XW_(BIpf=w0LLR9+=vQ6hb*6~*-ueXFGYCrr-wy2!dM4%t^cDWk zS)FsU&TT2^+@^;$tev1KG#Cs#|JIW^ok8@^pEzI zn`=QlF%iSJBI0u@*LRif`Qymi*H3j}pZ*r=fB4OxS?=afZxjzN3j3oUZDgYcs_;0a zcpNfrSbIX0%`)E>Hns*@l}n%PVEcujUT5Zh8X?bf;igqbLATtZUygcUn!$Zm?SG8^ zT^-gB#9q8%v%FAAMih1Vt1~najsGdQDK8l40Qw)DTTUO+n4bd2Uitu|id7i->828z z;=F}0waqoXoPZ8y(~1}$4*{JFJRYHk-TC&;Ac#pZ!U~tM35?h8-VThu3$Mc^26%-mlyhRi}9y!($R!%AskE( zk2^x8BUuQ`f%k|zVnGN9{yv?w)(5W2rV5V6<($8iFoTL^m|;}&QFECY(d2m0gIK5) zCjjkRg>et=;UJraRS8TXQvGY>HirwtsSEF%Ua(f4}ZV@WQCMBj;qzt~WsF{RL?=KF#bNit*Yvhf6f#&w^RLa;5%B6qW7VX;!KD#9Kut=(|lB>Q20iJ z0xUog_y(9qA*7!2X__S)x%}$0Hv+DtaOsy`#6f_IjsuElc&`Xt`A`tx<=tBL$fGqyo#^hSGZ8kO+jhEBmNep zI~~pUWhKWs*HlU3`M{I3VE>LC`vW5Tex6H`s&US9itPKEvojUKww3n{Z3TTm`1t2( z->#hm)O>)7DTHmO2jhL7qy?@}rS7OJYeLlmPjcc3SMmZ)6++nzQ-vF7lD98Dn7TY7 zs-#@9rJpge_a_bVPh0Hd5FL75)e+vw8I9Wi=W05&=)VFemS$&Cwhl|eaAIPrUi{}i zp2h$2*QMIj#6%dvwJb?zW=ll~{-uM){&V`;1|#@7YK}nx(O=4;0TLkg%ksw5Vuc?Q zRW}2r50S71x_HD*ddUR1hVGZ!>ZCpl^-8r^!r&$tGX8f93?WxKmyi<>#=}dj$ie`i z8s=CC%&|tH1tTy;GdZ+glt4YCOM+6%kc=m&9_R8h-o}fQ^SM~3PZ*N%Mhc)k zAppb^8UTIcGXQy&=)>MvLC6RurbCSl%|-mMpmWZ2z&C9>Ba7--9dk&WQc9@~&Q8y6 z+qP`)>MpaIuYX71-AkvKs#^DN;$UE@Dx01aIcUur`h)B}{C)oH#1J7r;s)1N-2#`T1&g--LY`0ZC|@B!_r zI<~()kry6a_Ay1>fEC{_*Dr9f9ZOz6^;+?HP17D&K2k4iz@T#hoLrsp`|>my0J@k* z7gg$E5;v++?kb7H=#0mD#)?LVK)sd2=cvKx0X=@PJlF%0(O}^6NP3~@ttUg2Sd}Rh z(TqY<6uGy97Ge^McB5MB+~O>54wnLD$=>kLYhLpj#$KZfq3eLg7pdz)=sy)(HE4FI zE5Yg4yyi8`ve;{MT^G9`;m@~A=(?^`p2=N=)uBq!@qIR2<1%adi0wSIPO;Tl($h~5 z@2BdGCyu{Mt!)arWZv;P_63htVy`F5!-fY-s{Xl{i7r2?zk+Z{)3gNgv-*GogVETF zuJlYQ`CLonwnG1_yvEPcW8hRYN8<7g*ec>jr#xm*gDUr0)@3IJO!0)sDsYKiYpU zhX35}_lZix#=s;h?P-i@_A)UH^1BB`x)M)7(p(AO-O6|*8giE*36^)_j*X2C&J8dO zzD8+q1!L?25KZyICYWrrIlf4e7h$VCb~;5T(6v@((@EdDCjZWQKLT4dJ zRx54SWyA?d!++nMIS_Y6;_JL$cX&VNyuPc>gKt|TmUUe`5Ln+1{)bYkk`tjMhhRqE zGfgw#^<8xqnvOH+7V=(eV`GCcU4PO131e)H7yoU`f6&l%X+pKW9X=O^p@PH9h)N@Y z;SnK3xazeDuaNf=*L`kdV}nx8HYjCWH=`x61ur2RP4MgO67Ic!298SLjxjph-}=Yb!Kc=^Znu#4CLQO{KmOxCn!y7?*X5X)|M)s2Yc0;XF7gOg>1;Jk z$r?n7Ne{-_i(!B!D`W!sx4JM`PP_K&^4pV>la8|lR^MK73wiGkZTlA67UGtmTn-Go zZ-M>EBe&!YO0nV}{uKj0H92`0{I(t4z7V$vVcWO({#%Cs`e9$elp6V44*!aw6G1Y9 z{k9L-f-;qp6s0yQ`L|?1xLg6N>YcKV?;$T3TZOl1i858 zpfW~q)7KCW>k%By27XGXa+sg0;rLx?hXiD zv%6nv)zBnbk@E?yM8eR7qmYHZc0ih~ILy?0O_U9Bya&>DJ(o>ckv!x#K!xHFU<^=fy}8>Xx=zUiQz}#HgK!z@2K0d1ccy|Cr(TjNq=u_ zSgOh zV^1ghoK;V+NhJxBbk?+G|5G0z>u{X)M02m_IR42^H{GPFH|@o`jSjLLo#U*!eB~Qe z67UBK{CS$)Y!Q*}I3PJ`9o^;NkId9Eoap)d1YhQofD!yQszsd3SglrTpW}Kq zfjl@(UalRxI2_!AKJ|)7mgOftj{IuR| z^_i+~e`ne^y?xiyk^h8#r(`kfO3$NGc)vsiawa*Yj~>A08L|ip)G_2W-2lg7s`Kl#n0D2_d zkNF^Z-tRv3~Xa7M*?j`(XPS$nyGr}188PnIBinQ`B6+j&Uj8p*i>1~pt zDpy~vsPG|Of5sA9NYelb>zPSe?Q&`C>ft!_F2Zj(AN*wnG}V7 zON6;Vf`No%WnbT`M}_~0wC{8umGyi|9molE_R!Bl*`GT5{WwmUGdBT z!A61LrFJ6aK+jl9&GF&cnQofOua@LoOKD;rKQ#=w4bW+wMRCoz47aLJa252T9}95* z1RA`l?9s&rEVH%+V!9YDcz(2XJZ66~nM`09{hTNd83Ft+qDO#-xL!P3zZf!0QJ3!q(2NH#n!Ku&VH4L3RyM=?IKb=CO) zb6Z!9?`l?Scp z)fD0jTdS3&wv{JcK@sX}%vBKZCJN;7bt-5X&TsK@pn}b5f^AP9Mxo}DP<~vIr03P= z{cL|oe|JRVsDdqn?R~ACvjR8}B51^&ns9ko5BLT8Bg^!@KbOW_zmPt(X|$lNYST4M zb042Nw!mK6N=?^b}=5G+_M4h6UQyMA6yUmPp|87yp>& zqb1Zu5n<2&HC``euG8OB3>_NRH!Bk8dJhQvsLj6HP;V&uY!)%|ZMN~+mG z>!xp`CLxk|)5WMnktN&xy@ux*ad2Hv$ z`il^KTPpe@ga_$H`*&=vavgsN&L};bup_C~_!J~P`f5`frVB=P=r?~921_&2 zb}XJ}zW)2XZvr1kX^>v``SkcVqwj^$4!~!-5yeL1oGp%Ft;KxYu2?HECv7z#JU0x3 znI`r~1vV#SW=M3qTw1dCrioE0L378aKF8h9XjvEnT*A1-8((3B8`~Tl0Jd7I3?D8m zEC{%CQNqH)nQH{K;6}NfgoTkW)$r%@b;%?x?kjc)ZG4V%-sWSA=O41*2x)2EdWh#O z>@(WAMsd>Zc0~^I17dgjt+;5lS}MJ=yL*MIEgd3khM*lse7}qn4|Iu!rlAhBk#*Vp zn%vtoh-9W4|N{hEGqb|lSC5e9xxi27j6g_9Zo!-B! zEMQ%|4?x5MApd3V>lCdip!dG}X}u__F)sbuIP(;gO&6yZ|JFG8SB9>J^ta_lZ&uf_ zHHI-7aBf9{5M+fe&Db0WfVSPAhW<4V)Nh8%Ngl-aoeui1`X+3s7hL7rOhx7HDJJ)D zs$zcIk^@l6UP+P!{Dfe)_-PjtxJ#x!yn9nsOo_bm3Xx1jb$Rdk4Mu4ZC)d}(lh)^U zaMNq!)xZ)7&qVrr0v6#BZx#nnFP_tJ$Mg6J7r5K=RSHrv)HKazidW%yZbeZfkVX}N zL7l^$&I4a#VZ|+1l7~M+unTW-F-eMX5|Vlcw`*Tw%7iHxbF+jHO2tFV|6bG7MVp$o zR8ih~`xLf{?>wkllC-JmCLF2FDT@}`P5Ef~td_iVji0VSdUeZF^4BFzgZlL1;&dG} z&7+J`T+`0fDyEc4zece8FD@p@IGHfdn-bjfZLLo)PI(@ql+}cj6QRZ^{qLRg^O=^4 za&$cgyF5~W#26p#f2u>7NZm}3Gz?0GQD=z~P2z+g2=1K|azHp{ujprsWk+%r7ahqd zi=ttA2Gf|#Vc|KW`1ErE=47TZ!!r%>vrmIYNZnB`9bS2!#O^(n9E~9$;r+xA0Of99HC{`apa6h%kcNVluJnaTvwdJQ#WpyE@+OlR z62ak@PJH+gXR?yrkrk~lgFMCadi*InTyRO0w7%pdLuIy|Ceh$x>Qp?>AXDHC;n5? zMfY&)PVrB7?%a_K!9Co{!;+T%?B1L_8h%6|@x4ncpZx2fzi_zi@=Ux_{KK6)cMi8* zUMH|8%YjX+2cx$n?VCkqE8_c=I4HJMd;GTOj6tWMJlYWvNz#Z<^Gqv_NIc`NHp$xS zuSbiRt8{=VjE93IovD|A5qMtw=dtI><-GXoWXfcoYP#cG-wxcOoUAb_O9ac5y;-Jg zX5XJs6Dd1-?vS>|djQIk`D%4O$;3@YzP$U?_^@Xu2lT@3F30WezVLc%993s6tVZ{}`OWu@dpo4p zV+ym<7xh}q|DqDB1Jv=HsLx9KG*!e;P=+KjQ(+pXzKR8WUnBr8TQc50nD}%QXP5<# zzU#g?r*u3+uv>o~yOhj?c=CHu{OIl5w}q<<*M8c;66I~J`AGKP+-BC&&nA|^r{z~p`ZD^Mh2 zh|ydk)}}i5XDgVemAwZZ+--FGgZ1kl$F+%nH^H)hF3|I4m;H?Cf_2+T&;cj{a> zii}2CTwdO9-qWY{`rh7dxU|&zMTYn9+G$lbHjYFgY$gpsT*({0NUVIj*IUw;_ii3? z{@>QZu-Cg$_xG;#g3st}H`?v%R~8=J-inHMK%C4jsfrueHbTfptr76XYaOE}(2H?& z`yu>FK6#cCNx^!66Zhr{lp(9&%BH$5Ob7ttL;txS$26XqqW1 zXXX2IJ(s;u-y7g)v_Z{E{L#g@HgTuJyl!$2c_F~LAmgklksr$QGpgnez+_;#<$Tv` zsrm7cU5|Yy$VmA+=f=Ksf>alPvRG_=aPrgai*~MGx?9Ro-MaJrHxnRQN^jF;8mp<{t6Ci{m2z04&(WAJX4ZPPY)h@a+J9fn?UtlqPYH*iSSZD2b_-?)|q9n@-5=FL+AXNxD_3A z793kurgRMe9UpZ@D>_ybQU>8{c;^H?E54O zlQ6}&?^D-DdXp}HNvhSCmgXkLf|c^}=Nnj#qbVF`KDzp*-vt~qc^2UPe~R|HdHSk% z2I@cT$%9To{+GYowFgDkt-%y~qX>y-$@@NES>nc%(07sMX`xvvJBLp@_T?5R+<_))ctc#>Ud`>6ZB- zlBU~K(?`$1Q2`O0puQNjP?bPbnZ(8%9b&-%5(VG8>cifxR4R>0qf$`}&bMt?w?Z~W zEbL&tyB^*KjX9R)s5%Cf*|w3lU6Yhk()Q35(XP=nWm4g|GBMQNR0XC}F>=V{#yqPWnYX;3xQTnGEW#(b}IfX|`1EH??# zNS9>vy;Dt3hy0M+!M3LtJJ|5^&nptYcAFW5!<^$r{}i@ zOjVuY<2c+@d9SfGSFIqwP0cBAC}mGEMG^GA-Pd_h(7t^$Tz6-Aq4c&z{2dBTI@4_* zz}#MD8Jr`y4#0k(RBZ##wQCCmJf3BZ{JKbEGBvxZj>+X~e5Vldi5d z=ug6j@uZ8`Kbb_OIF=+TcTq(zNIb=oo$v-EXj0wZh9XKebc(RI|D~d1N?*_6ZFiqcpGK(Nx+Y`8es?v?9g^ z4As;FH+AhaTN0PA7_z z3IrYJ)<#}+t}r3g`zg@G2m{aQQMdCm8pLK~Dn6pTAkbAoI+f}=3KZW59 z&}J*e`QME=>bhfWe6~{IkC}|n$e*fZn>Kdv^^Cqx;N%mz(2agFA>AC@-C+lzW~^q8 z6hrG&GOu4B0ato4*jIc`dhvJ$icrrk9O(G;Y38a{=}AEh(|G-jTTRz0SC2ZQ5GElG zkv*VfNE@1855)_jEK9FRAcu?ciPfEJe;g&svh+Fu`Q6163c2y*bI7F(Dm`8l5iD|UUOLGY?>#wTV5LvcLrX<+Bwa_(jU%%|+TlEE7@Ra? zB@WL<8~hqd&{O?JC-Y)2E9EeB1mhUaaw~aflv)7EG|okZ74V}}F{+?ex&R&&!j6hI zcwdqv$3CH5tdjCoqA@A)N!@pZuh2+&S!9~@1Dd8ew(sl81AV&PN#!Q zB`o`ot5{)3|1G369#JtU-*Tl2T)q4mQ@O1|{ThZpXUP~n5(WJEFDs7-+6$e)UczZE zkvOD5F(v7aP_ctls{nQ&oHpF?MbGR}KGZuNO}a0L^+$Bk%0#We(Rp%9BU3#`)H>vSB4J zqA!hlE21wfJXz(QbGm*|wR=3T?Y5)&3|Zp7mt`#sJjs-Yp@gWy+^6V%y+@IEvTV^T zj3IG(MU67|+En+^68-)OXrAIQxBteE zo+m4qGohBv&_P}2`o8b`k~*Zkq;j5uYi`VXyd~qM@_xoV1t{U(z!#i3tO~%&D zg*8Qy<+b^j*a&&|wi4yuBPJgbSMrGdX8xNua``pJOmpqXGZxomSy9&JUydWh$Lv{^ zq4=N~L$e*cJOWFqkq&toJjxS75Cklr2x($V-0qZsTV8;ltYnCb(nytmSCg;4lG)c< z{Ack2s1+YDvAQtd>&-7{U>KlHFH*4ywcm@<{J6a$YriY2SHH=(%iqLC9)bx~ z`sxh5Iy&jc5M1gj5Or;Ants;(DOGmxuGfh}W9l^X%lB}3dSS6%2dGaB@94-h89UlI zIy&-#!U05{-E2#&Df_I78^$2-Bw7|u8#ufI6jpoX+qp4 ziXG!PO{qTqhZLu!CM5_71MW^~)Q{f$^wUqb`?o+uuFRq1e<)2VsZ$L?mk2eZe)RKI zReen(UkB)^$dXp=CJOQ)wp&Zs%fKQG*ZO2@&mc<0vM+lD75hsoD1D;UYPFtOE}0XV zvQlugNm0*78x4oi@<85oxjD2Q?MKHE3T@k7%A!OH{zNr)?Gi>D(KTQ-nU4|d0$T24 zDrt;n0^6Awju>-*a}L~L%m-3p0#=%FS@_xbBCL%s1{el77(XL!#X-k|N!U65ChYVq zQ@cY^?$Auj8-LS8PRs)s<1p`y<#4dP9N_g{uh;9Zt*xzcM0^;GW?`W+Meywdy!wxs7W91*nTMjk2gEg(a z0(t>i^%cLf+Itp!<(-J)xruZmq@L^-c*v6s?wBle0o;(84mTw4&?-8LKr(LcR(;?@ z5k_ol6W(=j?*6&)nKJY!4XBgf?t5tf1Fbrj0ai4n1 zRpu4L5LcYO=9+6*mAi9oi%XD6Tm$!vNw8Sab9DWmg8-+pP(bA-{< zwkH1{U!Rl4eLFFN%-8I~q1)lH@h9QR@h9D5A6RZ#v8r)y+nOsgzBagfYJ3$K z>hYKWn}AJRX^&>$PCHi11?|)4RB!~tAyK(sUG@D+t5xxRwZ2~C4dR81*N29{&4nah zYei8jEq?RM&dljPI9<-kUW^ zQpD8cE>%8uWdGb8u3%v2yFMg$`1OP9^LD6J=l3|Oq~&@G)oK+YY?<}?vIESn*IO&o zQ~3gGVof7nE{CO^cy4b0aE^2=g@hXSc}m$d*^6Fh{XFIcLma0&GzRUGmR}EmgVP05q<_wVELW+9LEtz+5LPR>TXp@`Zwt!`RZ?}V3rFZ0 zw1M7V`**azN$S4GFRt!|R!afY6uKBFSWuI=09Zh$zZr*vL)5+{C%T<($2bv`OB0|k zcR{S;nYsyB)-_)yfo*V20*SidxH$>ub!L{TNcR}$O?V3RF~-<6IgtPq&BcxzN>ZM# z`k(HbyLMGz&K#C3_t@<0RRFr29Q8j6p(cu#fBoS z_`t^Bxf;&TNr;YFGlC(E3O-=;FX~d3oyUcqtZB+#8({i#X77WETW#T&3F+r6xc%u1 ziYxj4_=|s_KH3_<0PT~c%7ZdhHi}SGicC{RF_WyvBYA`Xb0H2$)WM>F@L-?-$5t4j zqyzfC0eC^Gx=`G}bQ%C@2Wn)k`f%LE^AQ$WgUv_{{W&#Dmo_xU0E{-j;*b`7uqG#i zWb|?fVWe+;7vBe8LM!Oe2$*zGvrRpY?jNfXm88;xfX$t53n<1pZ!sY$1Xz!Nb_#^RJrPVs_L5#C^NPNwSw~iH zGyo+1c?BfN69yQrVSs7n9{7$VNe7%Da4xf~DFDYVJ#grHH700gwdLjIWsOee->*1M zY1`pikJ2=>eSiqG-uB-Cv1;^RaTzZY0Rxt2K`-m z$mUux4eaGke%EPStOH~JF38PVt&oMQ^#}s_gU-DYAy~qmlb*Ubi5X_9$B@1-N(u!& zd6lK4>_Me@Y7Ln5+bL;P|8m(OgKlSkL&-M3XYie$; zP@bA6C-5XqgWHZj8TuXH9vTejPiYO8)%$|b+g^gA6=#ii z=(dfClH@?2gcN*KDuaJiIr~#BY4R2y8_>8oCfJLCY)xj{>+ZD~wtx^}FkKQST(InX zGg#1Tal7d)znQl!a8HO4VDi4fCT4AyupP22OOIlVu`F-r#C=<<)k+&G;|5n08OA*h zGnchmE!jRe8#GdzQ7rq$o;`co%)BOw0xxs=gj+b1w=IC`A>~-+d6i?zp(=o7=g$<} z6Q`r(Z1FWFYwsyBwLJdccE%NjmHz7f`|nS$<4VLL48R{sr#m}-_Wt|tw-Qe6y0q-2 zd-5|Nf?FDX$G62v-%>~A#0puINzSw>DdpR}gbv=6)WL#CbwV9l`iNkwRsrxH@3!0V zYq1bEG;NR%GtAvBMImZwj@ww|gn16fBH>`x@#~2$Etk!YtjnRYN(88uSM_Rj&h-a9 zsJsgF>%ZfGAw%6I0;mCYvar%YFzSfj7ve6Yw%*hsaNRFKKz`5SIC!pB;|hJpmc8{2 z_zm3U*%JsgQrh_H?18w4>d|52`!hzcO=BXJZtq4nNd&El)T-cr5M>!0e`81Wy=v9- z)#WQod22F1eQYw{baKn5&e>sCV62}RoH}*tdL3ht1@^H=-npVs4M3yH&TGr1Mx~tF z5d+jZ`Kmur?DcPRSXDCx@1N=S`xm${wJNhuwx_;k1S7PHZb1*Cw;<2b*`z^D93F$} zWT3ClyV4$pUIo-4{uisF)<};&0Y0X=r?N|fpXp8*foZv(P_=9C1=}wcUEKJe4V&tJ zy`(v5aW?V1Q^g{T?^R{2>xSo9=I<8RUrs5Rtt z*WnBg!w7e~SMYA7-F91)9?LTc4wyJlOz#TAt9I@*E?-%yRsjG9gB;UFIH#E9@0(tP zw3D7frrr4=!Tw`=vVSb5@N`@=2>G*4=v3M$v)GLXsch}9{-B|oSeI>}E=7ohEDY6HmYlbpG*|vX1bhVomNx;jH-44kY~Y>s~!mGP!)x&zkvPl7op+lM0%N6p=C8wkvgB6tS@v zcYODP=NcfwlqiF;Z4gX&cRYZo+FGbac)Vd4W*pj=4s7-c7BBjjKax~p%=?O{3hd7d z#^fnUCC2*&W70H?JP=B7M>Eyx{CUX=GVeH0rLhmC0Z5HUSW4P$$YH6j#R&`#N5Ep#0ZZ+GLi1^D>;MOB z55oFX7*2^(*!Q}6fK8EWGn?D(LJCFuT85b3cH3>Kj2E}v%*CkbgZ2>*FWk{_&F_t0$m_)2zO1zfLvk z0&-{JHK_Sd6&(k*kIzFg{s|`!2ddq^Z&P#^Hqaauh_-;$359M3Ikigr08%Bh*AabOU-bdN=xz{i={2GCgM-J}(?!Tu~BBR}N4d zXbgdpY*(TJE%7hlW&~w$09Z zb%6TgVM&sUTCkn;ZsTr%nYIpnQSQ6o-#Z|}eb?02bPn7? ztAJYQs83Hb=CE2)x)r4p^nVi)e8y9d7UePNW_jLq{@l59)e`l*c>J{AxR2}8t~iDS zT=~cmm|%tH*7%ZMD1|)^T+7|HM=aB*^k3gMP%=|odGCz{GE(=>>(?#^#4S%zViN~REI=^p>cOAloc?bpr1 zO$_U`w25cDnZ!;p&4|3QUywl@oNoAp;}plmjEVZ*Hz4I?DeKz)O101)bn|_DzD_4y>NFE5TN?{g zy3z>US;1{R{|?&Pdk(I{vtWyNNfnr3>$2b0ZNeEy(v%DZr0jX-IHfE~_xJkm&Ubw= zZ#r=USK!CgcE!ka9ms8M0rgh!8sIC33mivh5z0z*!q**r{3A>4vYlvQ5a>6GDQKwOw%B;U9L1)HC%lY8WYfJ2Ul zSl>4~7(p(dV9XQ+z~H7ZG)1BO3(RU-)peOjT=}nd&o5Y5J7pNBG;A%*?>-l~*Oi~TNyFRroA`Q3+7^U3S2zcq2OfxC z<}W#=7qA~JUVrm`k+a$IJh`mZiecvGBFm>Ir>2WvZPqRBJM~E#MfZ>knLJz5Q{0JUa&>ahq=PJ?+Z%ZJ51L#4-0XJTR258 zCi|&>!NAUkwHjHYRGccfcL;IVbY1ff*MOwbZb{D^^c#!3avbZ5;~jA|4E47I18cM< zx7FLNwB3HC>OR6A({{(qOZPDO_!}43JC0MEP>gP^4wM?N2T<+b0(+Ow?Ri zR;cGuMOM<19lukpRv&)az+!r4TNbdxwwY;xji(>3YN6g^G@8!hmyXwE9_>T-qGy3Y z4#}43$N8UCc;s(sCQE@4f#k;_o=Fi~DG)>yQL5CCE5%XW>6OC}* z=Sxw!B)w~TdOGK0U6v$_scv)5xvkT+f171Vs+8x>>9QnaMb#KKO%s6Wx~?+-(=;WW zDhifmNtc9>bV*XMqG(JqO%wR9LxjXMRhDE){;BXjK|_lWzlh%S)Ke~Qxb0)P4}q#E zQm%4rbEk?$*g@Sf)^|;sCIQ9-V?(1L>$)X`){EEnRh_XyIQSO#ku1(7j3v%33E&;K zURGwyW%yOXG)>l2s)9zTC3B21=CVbp1}arGS<@K7)V3*J`%eM zn#R==bST;0QrZ<;Bm5YA!?(e+SE1|Bz41)I&nj-_q9?Q9KoD{dM&A%c$RK)XP0SjK zuue=|vTuYzD6MyYMq1$Awdz>6zEE;^IA2h)ubH{!2~`u><7+akvDcnlU0q$>SZ(P? zaL;3+6~U-P`)kzUb@mskG#au{jLFK>-03+*8h`mK5dPdnn)T_wdiY^Y3H~9mAHX?L zkU(inP(eyex0DRdC1hSF(Zo%N02_!TKawd(X{3twIf}`#D3rw%_UA&aHATw=H+o3D zwaV^0mFxV__n!?ORp)t?KYpI|fb-T0{I@I)rf1g_u2`8GSzkq8J#|Xg!b^l;ags0z zX^N4o))@d~(_HmUl)e`A;IySvSq;vagTBXky$N7G?A&ewm^V6Gh+b8690?g42T$Ut z(G=)cXNcj%8)t*qVi9iZ**G_IXu71f1W{htU@-C^Dbb7yHC0m|qW(Ks0ov;5077A` z^}?f~3Zj+dRI(Wyb=0nxQvM;LpGS!xM68JFe?VscqYRsj0U99c!u5`vV;aQBukzm z^h`RP&+D6Pu5>NHRL;W{MS(w=cGhWp4_EGUXzbBmbR76RV{0sCT(vBfbH0UKW7=6~ z0^XI(1(-@+2`ZJxsEixA8QzLBcQ%~ykM5>uO3jev;5fy0SSp3`!cR|3O-=A&Iy+z# zW_T+y{R`cbbEMl&@9RrM&aw1_H7N;aTtf;AmRN;lrkiyWY)f6A+A4m&F0BrjwPh?x zj}q*CYUj*?0`}MTDZ5t2e@xZ&TC_Ojavn>vbT`pG4Abep`(5N>@GRCCww*RCiz*NX z9+OSfzyaJqL{l7#YMVh~XmGEy8B~>-#(i!x8a&C((cZ(zy-6M}x*kP3_y*S@>;{Jz zKuSM=wk;0xD4TJ|Zx?keVPb0cH}Uy(tYtX$|D5Pa36|A`?=?Py#U+f6UTY+G(N;n<^0-tJQ1hhfO|5;!o>FQgpKBZ80v zyvcee<#h*DEgF8>HaIWwacx9*2YTvKfVwsyxO+)5{(3I)ZLZylv*fdpyLBx{L5N`H z5%c>+as0pMti2CPQS6^rGjZtn`)2W+Ck*)4*ENNs=rD=3Ll8_PFD?CliLxs zI9qD_sh|37SH0rB+7rYxM>gcV^La3W#{6+b-FX$~xIxJJ-v!4XF|CDUve*Qy6`?qp zw9YL{QUf54w^{ZU4rXe37iNM=1PzP50Qkk`rT>t+9H=JzlB#+pm>Pu=2ESPJJWYZVHIE40j4M7P zSn3yj04M>~OurbLdLAIJsEP^zl3IwOsG#b)8Cz!Fz|uP8bu+Gq0YDJeV^hxqk`YXe zF6gG&`?XS0cTsE@&|^}gEINu*ot9 z0KBFno&w;#tdI4w7{1fU=VAOoHb|WIG1!qeEa<*Rk|_X~y4v)vW&)QRShcNiu`u0+ zuoy;=&o|2Be;xf|LojID?)Hf8U;pa)ZgCbD_w_VS5rHA90L&*cZnb(aM91qS0xQOt zI_&j2%%AIpLA#YMO5TJlfWj;?Ze<3@9#BJ`N}%I->S>9yO%uX6tIc|T&TN=dY$t>u zbZlh~P+@n{&Kg2!+u$@0AgM1AvU?0!(hunZT{imPsEv>Qck}ykW()n0F3H9{NJB>b zz+lE z999|PrvpFS>zlbnNVydf(|CsF~Q9k-7( z+O1cfz|ss-gZUMK!sdGlgKz#G_~0}GKNLELspS2z#l3y> zp>ulMT$;g1nEs*r8}Lt;zm&_D>YQ}&UP{0I_ZeommL;RzAbRn^>jFLER`c4Vt@)W} zt9%80CiMP!Ni9WV-b$}+CvNtP?-SUJz;n>SG~~k&rVgK8Z>4EK#?)jZBpqYcdnt`i z?Rq5FKd?)Fl9b^g4XAl{-y!kRYW*Wzg!i<+mo4bo?Az?!y^Z4M#*>Tm!Dq{H zrs@Fni9-cK<}!H0ICW*+(A*^ORJxFLpHS;&yL*CaEg%HQH)w5rEIUS74;tO6nE7|_ zhA;pmH&Q)5`35TXg65DlrAgWyNeX7#?M`a5&XM$sEN?;Hm?-z!a6!Ox7aw}uFh6JM zI?&|O-e!*wT_@xfN8}_QQ54mzb{txiN^`Pd*y9iG>q#OQWmmaziU4Ad1S>cSh|>Hy zY7asUrJ<u45%?^ybuAfY}QZ z3k&V+Yn0l#2C_Rr(l<13L!xP;BF3rvg=oB@d>z-pT}bwHv~^MYmuD?YJh7+{Qr%Gj z3GTig1%Z5}$2e3r&J7-!7u_@TyC_lp+SF8ZM5l}&QPd!xcO3}}S!rB-4cK~_OPkF- zdrqo>Un!T7v1fPnyr`gBreAkXox6B1;g!WwDX3NsGOp7@iY&0?xcPjbDvite8Xc#2 z#eoB}vs&5tduVIYXk72aceIQMp#pg=0&>vC)HiRJNk{}GyRvM(zY?BQq2zu0H^h%@9jHR-| zlC+(+vR1p*)wm@KLIXaa8$gVG)#v%=5qLYwxSEPMB^aUcLj~+;0MOakNiwEgpF+=i ztCgxmAyJ18&Ppq;b#c|>n(ud&X0)(av#5*#1AwejWm2JbkhnPjEK@sLT!@;AD=SrB zCtlSM1K zS3^*^GGzf!Evl5~gJ8Z~kw&#*O@&?JzF*ComSX6>t8)CGGcz*?w^uUUc>oEeF|I=Bf+Ykx`&SYvK%})@!T3u=r9)loPcdX z$=c!2se!>L=Ot>0%dqVSa70kVrP5v;A#IXR>!ICuhzZ_)k-MsBPnvRwouZ{TeJR%j zG#Gde2#!BXaxj;QEIXyp@nh@K6A61W$i%Zb}HjL)(Js)YI4_( znbp++`5l-u4esjd>S+6Zju3|RdT#aVfAsIK+n8Qm9jM>B^45u|!-uD48FN&bHNtx3 zjfYoPS66fMOwK0+m90OQF>QPYIzU^g)=o!6uxdC!gQbwF5rQ;O>PCpuIIRjp<6J&p zTqfj7!gK>av@aL)`P^*geez1aV0)<~%xg+xkGa+dvzwti1k(W?qLR#BR*I~tGf`}` zoaxTY=J(pM;Mt}EjDt4OzuFcMdZygoYS`s2QqahWSVlhcw6JRfjXJ!go8=kCBNxDh z-b3}V@w-$3vST0cPu{Q|3{V4IhhB}|9QOw3xd46+5Z{H?k<(xk)#6|P=$Ar6okqS z9r{}n%HOrk-Z*#N#Ef30M;F!?`ryBep_hL~A&l+T5qCSc-k z7nMc*F}W>Ph|nl_C14|``DNH`@$arPKVHY26&1x?QHel&lqc7H$M`AL_}`}9$I<>% z+=E|3HUGt#Rf;_D11X@Gav|CifmV|6j}o~$E`o0q7kXDV5a|wtps;7}o;^Eu?AY#@ zCO~1&p1pG>TwwxB2!U}WF<+^_j*#x8*G@(s-F3r>@%NxJ{$7O#n&#M4Gi9B+(3y9P zMopRO?*Bsrme)lCp~*dGRvedQq} zXi1jzfL)p+QrAX%g=w%%!wT8lD^O_JJGN*I$`#*yI2q(rQL&MwSO<+<#6H$fIiAnn z6GE7LOEXDGLCqv}qJ|oZxVeK6fnwwJ66@+((EcO>Q2AEw5pbi3dq(sniF;YrPuF<_ zx8NMpZAo=(VNe2~QV$#_kZ{O2b{uSRNg5)k2f`S;mZ7OYsEZvtkZ?|4E5jN5bEkgS%>UM8=NB`BE<|pJ@~m>H|vJ*DuyL8ZQIA%Z9RXC*8gyi0eWTeKg;dCPt1j1 z(G1Ra<#OB-W^Xh+Z`vXU#!e$%@t56)PNUncKV$0nSw&zglO78)JSV)}RzRhlzw~PQX%_HY1^>t|W?nL02 zSC=1I>cG9lh*3*CnsR2Bto_R0?fQa2%UT70o+#lvzT5tH!0WYt1qSdfwB&IOa~3}c z!uL3@SneW4f!6s1OB&AzXwDQy%Y>RWR|q~iX<7e`_`Zhc)=rvgGK`rcYl8X4V#yMC zQPt~p&j0%?R3YZLWs*Oa>nbtfl1bi%p=vLsY=w24RR?ZdPo4pNELO_$4|sc0TDtr` z9KOaVt$V>4+)I19kkBtEgb?Yb!O;bvBP3HC8X)BcNjhoUSc>)m%dOPMmu$FVA7HtQ zLieV9bF%P+;#GxbfQQc*Z&=n1(}$xU8it?&eZhNQZh=+xJhLsvFs)AQA>T3hc}`o`=P#oeIW@;S(qspoZ3RJ(RC*jJ4BbZehOyU_`BLtF!Pdq;$`NiHIJiqof=9?fh)OIWQwMJNlZ|PZvD*#&==^!RRnIxu8BF#7m)I+p`uJ;d2`vN_! zQ>vcsa+2CI@KV=@Ci0UhbWKX4O@6a!F%apbF{*1c-1Jf6ZCyrz;^`%zTZ?}^Es8HBT2+IZKCgki1G zC=?*h=R7Z;iz`!8)hdRGxV@B)H`%lhpul^OF16zcz}4#1R3*;kJujD!p-^ZvYO5}W z5fDuyFfg|AP^uHn_a-OHCCj{`RPESx+&8UKd2-V8HS#SQywmwx`bG_E(~hsEARjl| zHSx=6EA{B*WN2msAl3F(rBSZ6HV$q4va@!>;?dF$9qg# zotx`YLz?K!&sF(sg830%A?+)?{oQ3f)_6Gtx7spM4lO{{N9!^P>2P3mqw0w9A`toJ zng+NSwS5tON?j$YO?2zh&5GO;h(aikEzx9rh$LacDs2Aw6DLme&$V1Nf5m@@qUcmR zisRS>Fdu(-*(vL-R}j&PtWhq^&z+iVPWSu$z$aXMA1s_WaiV{19lkZ$-FiDaAbO~4 z56AO+TaZ!I!dMulVu(yNH~am5vOw+2EwVMj+ic}zk6XFS)RcmRDf$cN4H0s#nkv;fp zY0Lz?F%`~SbImn|aZRJq&;UxM|2~t}Xf)mn${XG=(rc-qX6xes@aah&b>(|i<2NWc z0>~r?)ld!vD5#P&$J7iC3Q2LFDQ@8IFTabs)*!t-;+V>Gs~9n_lf6+7;GMSg0FB7o zOZQmf%VSD>1%3_uDGXDhNTN9CPID>O;hnt=XL!$`F6dMD{C{p33Oo{5HsUO)3w;qzM`UHMng`~z~rHPMbG6MWELO35_8)x-8W4d0O zTjq??ZS!;Xt=D%Cr)%{Xxd%a)(=}k1WEoGy>Uu!AX`|A$xuS==*{(eKspX~oj z-}Op<+>@jm`@VedEB?!)A*G#q1jW5CAJ`ee?*LDd#IYWU_s5=NZ)bt6Z&{)pZTcMQ zu8&4BE-Q^X-js)}7WRwQR5>!^kzy(@FUpKfRNh^X1L55^z0mcR){GgO=nQEzTYLQ+ z&O~Nx<~L_Rcq(-vK3&z@w{>ba+k6&;b{3xopbA;;K2oP8gQ2jg7n~^he>s0(Q&}w3 z>xH5sw$mtmTmi^+X*+5R5qvEpZ98&Z0_cyG8V>A%y_nKnbkBJy&NEYxSeytA`INWUfd z4tKF=6K;Wc@#tmkvQt{x?wL@X)a_mEnLSaxX(tIO5@ag&^pA2LTa*IZsEsu%M#w96R7pFI z7Z>B$mde)Bb>rA|rM7>_NU04Y=B#1Zsm68k?t6045N6Igm>Js4z4ldV1n>d?p|XPkL-oCp7OlUYq&V7 zS*pfW!o)MROUJ0i@w|gpI^U${c7yp0bXeM$gC04YgxdV(xJ)5BFG{DqdBk6syVjBoRs*u+;#6l~OO$xIp0jB}<*$Z>xQb z|DeZ#hPCSkP$Mu|ncoy=kqR|L)%N@FvlJo9m_i4zVsu60s%*7n73)W6U%auuu2!p9 zw`8?it;&|h`?t`LjG4Gkxa~4PaS05D*KgZzpa7IPNwb+aOqG{<=?|y9rScIn8L!1# zDyO|#FD)-U^v)ZxEOPtbZvQ-d6a1p}sP#7MJFK6!If)r@7NaaL;$m+Ra;QmRex`ZG znjLL=0aFHlM^P(XloQG(T$jF1Ci}-@(`=aM>a6iM0$K zrvvc^@BAyhUJqovoCHF&iITLwE*ZuD+-|pp2$JPkLJw0W*XvX&0$-qENA#5Sg6rYj+A``%c*gAFU6s8(bD}?hxa1a>>7-oh?882B|G%t&Fd?W6M zjcHpwq&HH3iBN^CyVjrSHy6TZqSeHuBH4Cf|P;Yh`G>T30#NavRW0i-{XI|u{g zdK0rww{(A+&>ajM-8c4B(9O`6b%Q(m6RgqF(t z?%0@q>O=nu+sq-?1_M|h3>(?6y`SmHF#^T!QejZqjQK!?se~M0Lw8pmmt80tf z(L|T&>W>fpC9urN9{h3}LUh<`5;Z<5xh2gk9vQK5Y5*OSi}-P)stpLgq2tnZ<(R{& zY2Rz8x#0bkx6nkhUE!O~cuuPn3KqnXrXT*{cGig)SRS;|TXl444Jm)?d{9A*5Y_=YqYYmz{Hib*cwGfw3`T<0yP-T~CxsIM31i`uxAyT|x>}M3*|QsZ9#nR74-mtm70( zv|rcbEVt~7IPZqCCNBq2ct=aJM3U=A>hT!+qDzSEkY@U>r+D-1fdfdIx$9hX;K12y zk}VVE_kx#=hA8!urf=HI;+T}Pt-U6@{}F9y$G#5yvbQ;Z#fk;=ll50*HK|xY^RAL6 zsMSDb_trlnl5ec|9TpMC8*;VrNIxYiP zsbfk>>`c5?O9bX2EA?iO%#Sb+%#fo$;kPr6(VwYLX!bj0-19h2(py;2*{m70u(~@qtCJEp%S_vRIUj(T0M`cSoTq*2&R zsr~tE^`ni#MuFNNfA@X%d|W&KJP14v`y@R3xgZ=2_3za=A&&+SlD~cZA<-$96}DF@ z6`mbL;KZEH4@>mRYmuHp=|Eouu8wNWtEedpESiTw4+Q3VQcrGdNqbWDHZrsjJMd)fJVUqT%;1eLU)D z^t;DDNJ{I42P5RNIC6lceF(&;-XV-$Q`=?$syIjYn9o(M@t(m3N^3^SFV^g$I5Gp9 zs5sJ(DR~uoJTx~0Y+il_9^GeTXv4^VQ=};C(VOegHb*=6lkZsfSx?G)>TBz~rcOO$ zO{0}E@LlnEgKYkSj+Ls@QfhBuHU$QJWtY3W@a7dvOZ&0DalWDlxLG$K;$z|+@*i;v z14<0kJ4xC{fr=wR^P8M5B+3-kJfm$(lF5*bF~MvHt&&|Z^68b}temvQw*iu6?p>C|BMgDrM!p#(av$!-NytM>$d2=@1Dh-yEmLog0Jbg zr=C)2(lJ5RL57tw1drRiL9{-db=kaluO2`O>=9&l!W z)I-{DA_hNdjr=4JdE@D@NVWn&e{iN8#R^gVgEBBCRY$3jCcH3*!kJm3qq!LV!B-}H za=ar7;s08=8zl)E?w}+=J42Kt=x&T3y6g4XZ00KyzB38RLIMa;-G1|%x2r+`NKxLp zP%6Mh6Z-0Ixlr1?HmIIY5K7)}@P!1SrFZE$0)&T6GbX9dQ^7Ur5DcVNEMoCZ4em`t!zY>VC5h*=O08D;)Ka<8 z1i8FX>#IPQ*P&+l>jR7R`XXF|dSh#EyWVKjxA(Rhb=Vb-ac$lU;!>oA;~Gai9NCUz zM;Kq_bdawm9OF7dN2NIE3C2^hNzO3F5&l;Jc+I+(aTTb(ukeCv`IK;tnkTkK$A9VF zK}_L46c1{rF&K;`CfXCg9;cWyLWt}LV23$Qw8o&d*W2FNIk2{&w8QKlK^tE5ASa5F zI=@qfa8yA=DZvFA@r`1>KAtRjS_3wwTw2}U-db_w591F*=PZoVK==*fvvKj$hEDm2$ih^(?yq*wckPX-ZkkGTADb8+hFsfj(IL}y-eN^0 zW(-TJH1?Ii?n=-kJIip?L^7|TOlSu+3;=?Tfl-CYZ&rkBb7m-+P<=_HA#y(rCQHi@miLg0&0d;d4t1t(jS z{Oo>5Kbx3lbiGB%yY{+v^QOHB^feKt05|79U&(3fiTJZv-DfOY@li!8c>oWjqYqe` z7JPoF`*rNGDmhyYB|08?w5MQ!9w7ET?KIg?P+;zdx22bBa9O5oNHD1wzG*_b|1Jt!qhdGG9oBtlqy}SI2`#dfE!>2z>I^r zn(srYU8~vJxQ&Kuv|T?45Xlk@o2mCWP9bmh7r^(6q3iN)RokwqRE%ruT20%oS=>Tk zJHI_IgD$9nT-xdn!J-2rsS2x&8GgQeK%=u-@()-kcWOY zb_OwP_>8CIB6^B*P(M!Y$?(J(KQRc1ga5$augUB1|84&h-{nyTv^1ts&EsNCt&@%f z4lIy8)?6iUlZ#(-tw+vOD(_odT3Wmj$Im2{N-{ZoILopX_8v|cdxp}L`D=)sk;LX& z51(0FT3UQxrE(*wRFY@ncyi>Yhr?mB<(}Du(q|Z35&Vo5Klgfu9|G?fizjwHyaSQ- z4R{N{UjXTE78#mE_MzvQTh=&$1~!=H01kS27tLhX%#B^$=gbi)uV-0yh9Nkx@@Xb} zT!qecILdda5Y+Xr$;@Y^JTf^Y=Ef=7=geW{IO?y4!{He&R!)tXoT>fh{~dy$6xV76 z&I`3#NDKnMSpPyhK~l8_{r346VBu)T36Di!jalRk4g^9GfTKF@kh9*JCb=*mkY6O4 z^z%`T2Ye2^#beWaN*g`=XAk+-qEt2ST=cMC%VaV@o0}&G-Q|iGxK498+(cj_Db0Qz zf1M{WCMZb|{kKZdMp)Q^=TF-$Ai$X&5{k0ngHH;ncnbvL-1e!0MC&I9mdirKnC((e z9rbpF7*{^Q5+e~$ueHWlm`K*zJGr@uqOjpQUa(v!;LbsJ&bgBqvm{Pt3@I&qSQ4$3 zP3AfSB7iK`1GH%`rETEcCwii6V{B_J6fJbQip<9aT!SfCH1(3{~webXs{Z z_~+BG8L#Qnl}=|c=yVn@%v9u7o zZoE(`emkQWr<0Kfb7+!A?|CPPH+wLfx-*{hNOq#E@I!HmmsOU9uAOg%MO$wmw4;e^ zaFwop*9A{??*R~+dDrJRNoK}-6RFK%cDG*4;gWuUcq&UY;u~@4Wiw@>oHM-qK(_L0)4Nm_Yrc_zUdO}f( zZNW$5C`nV>GQqZ-n%UgPqoU@tYYT1Mq@H%-O6;_=X6=_H-#MGjU}^TF`b4GvVRl1p z%WZ$xkHvR5>A6T0K_tILMn~NfF$1gtIEO$s#EA(hnHzna3zkfepH2vDfrNFB{7(N0 zysDHU#8yVwE@g@n$|^R1*V4L1sg@lNO#cU*l*UsN&}7PohvKg zzSbn{)mx(n={Ussc*F+`2+pmYc6H@)+xo)-g{q80$b&Se(dlHPHAYkU@-6Qx%I*cM zMH^B|r?^pS*7%RBq_m3y@q$Rf5EJ!$x4{v0nbN5dTo~8&jKY-OJDJ4r{ZL%6DJ35B zD`-AAo&WiQ+n(p8+?SPZAVkoyIYY9jOAa+<5gB4cM7Sq0C7ftmdvO%{5rJ-Zc3{1) zsMgNVC&HLh>86p%#Cns=aHChPS4LS0bKiu`k8!5z)6tk6BN!3xNCZOBc$8AVlRGzW zj-O4r)q9@mMNfJu@r9}JJhMJeXNmKCDf9k~?~JR}sv|wAZ6-yaIl~NdZsXY2LVAJ_ z$G53hZ=KxSLCpzgb=-~(dOpKD5L;Dki@R5Fp7k6 zjbj+2z!a?BzwcJJXTIntHqoBEacpXT#GIPp%&9rTvUJ)$x?~OI=hDX|z&rhqTUS$h z@n7~h)U$0t8KsAUGH|!cDt`%bGPgHw(hQL+wbFd5hm(Q2ZKC+Dv14z@labl^(h|bEpZP_fEz%VM|x`S$0KfM2o75s`QJoz}NlKRDk0kO?hfywPOM z#$>Gc=*jRFP&h@^Jeh-*I_`m{Tj!X3n!+?6#syoF2PkU0WZ$yP0c%$~6!lD1SHR!1 z%9+o+Pzp`H1eV@k9tniGNQmJlcmI7ViQ2!TblbL4i_SYEz6+5Fm_c zyM!qP+MvrF9$I==kG^B?x87nsZGF!A|B-LzQ#B`yAIUA9lg*K=Mgfo1&j*0kG=MpD z%*ttW&>56?%(%+vKy3HYxqc6NmSx`e!zjn!7q#nKTMs?7wN>ZLrW8MmJ4f2{?!M>o z$M3n@^VGv|3o#=$Bqfw$}lO%S-JZ;qb7oP%f2 z-m4GKqRily&j@oIV=7_n7=-YnTiXb2Z#{|;GEN*;jAI-|-WQZg4uB2dSP|s=lu}HP zJOSX8N`V9*m{M-S&~*T8d4sLtd=9^YHT?Yl$W`m0b#)KQ9!Yjm!PE2Xt^S~_^}ctI;;v**=r_51xIf6sT9XQz*P+N&SY)bI#KHT}C`(d6`K-=-J@Aprldt&XMcUq+6;j7Zlz&**X zSV#9?r=4ZiH*st}9!F?Lz46p{uuwntRY4%q(Mg2fXlaR=Uw;E*+6vuj;Qhif9Rh2s zw|FVz^vNtj?*j9f4^R5O>0Mj<1Gaf7FH35()@^r<4PbrCWqY3|4hDmjI{BUYvJvx0 z{`t;mmB-#jOW7v;KrsLnTVC#z%=! zpq9L}(*Yl&0a*{QMDM&1H&v!x2Ea=1nj|BzMB&7^g;otG)IHkV+&p>xf1Mu4Orc-A zttC#fWDdLwZEl_f_x2h+002$_R%dRRV%hE*YnKFw%FmW~{Z*gej&;&{&vC>5<8c!p z4w21?hnVn_Lbr$H5D(`xADxf$K>&t8dB3sPeupXZBX5<>JA7?7{S)8ic_+wo&$9aG zuFHT|@X9OGm)pf6sN6uP(7U9z_Aj5@+(g&HqK1ruC0PMYaJf=K-Pg|GYcxJrK9r46KypIO;=r)^^2;w*{`mM8Ap~EWz{zd#Yo>5t=yTu7p;E;U z9yoB|-YQpjCy0OJAOGsbdb^Qb-RL$j@CB~;? zYtJfKJEM+Z&Ux#ib;XiD31vy?m;~xNiG3XdEv}E$fzuACZDJu2Ff#!mMaZnIi+jUg zwluRj4A~F20UeKX0Zp7ZzXb{?wtg!1zk0#(DT=DAf{QGF*WA+XCbywv{wKu@@NAw# zCoMOr#o#1O9zo}S;&~plGVMX)%t8|ktl6`eR?b_tDa^je2?^T8_9BS<7)-C1OAOpLA{wKqY>S+c&`{S zC8fEpEc8iThu_zJa>M~Ovq4lDuno20? zK4w=+bBOMzXTtt07WU8NM&ao_&Q$YB5`rDp953`XT2rjWmI!dCK z7gEedn$HCu_q}6jOig>-*J#Q+I5J3EBdViOhd2$|Y)s8Gn~i1z)0CP~`_pM*s?Jiv zd6Tdeo2e(R#mlg}Wa<1zx!A~-i?(a|e#=|{7Xd=tE-rW12K_rZK4-gs9ESIBe6H9I z2LQnF`9hnVKYu=LdRp7se}QAH%LV%Qc5EUU%%9HHdfeO8Hy7`B0fRJJ5DdV4pBY_! zKdq%i?8AmXi`a+D@ZwEB`{56NxP(C4-XUMxh_ylg>+q6w-FicMWzfKbX)j27=4aVp zG?)xqZlw8tVyQD|nsy2+Ze5y;-=#B7I%$8|&X9&A77PrDuxkCXLo*JHD?%wze6l?* zF$5HP)8;Tt2xi?Yn-DVpuL%?oE5(ZcK$rFbe@Q6K1w#lSCWKN#Fbyn@XZFX0Qid_3 zlwbfr)WGhQ?GyT>?4)kI?R`P;4^zqMmFd7#IDGa9;nv_vV0X=Lzt)rU4Ptzi%dM0;k+Hi!Acf;BATI8uLxSrU zlb$n-lp8H02jS`|UrI_{H#lWbfx2GsL(VIS&q*9RE?K|mO2S1t%Ug$m1H1}n{J&oD z3g%2hq#4I$z*^@41=_!S&c92-We2?ureBux|pd`=8(Etd~CMXU4Ss_hI|s zc`mST@4q)=n*{g&Kfmv{9={`6)6)*X`=|XYw6E6w%dO}iqiZRj#h?14g%oU?Q4`M< zeiA#RgJso{ zcyjhQ8#QCBK!u(~E`b%L2#BE^wj&XHH5by9y!)M46$z^8yTp8pzlTW1c~~205tNhvmh?eH-A(5ExMC9zVt8hfohel z%(}Cmf%x174P%VXfKo(agY!$1^DIiZubK~%=!g!GIQv-IFtu--rP&15{6aAd0UC`M zyL=H4hQ)%wl+NEdec+E%D#(Z7-SyN@Q$MZmeM{VEw%g_VAGpyN zmD}xRBj)_)H#Rny2d=|8UB%OQiE944u*JRk-x|ir=--u!lI*Um9ERoW_55GTMDm)? z9awi*hvOD1Lp-2GDQXJvwBZQvs^305h=z{@5l!UjG*@F2eJ1s3TKeGG7aiCcvw~8% zXj#IU|3w6)b|#$u@Qt*-w+jkg!|&DMzW)pCmC7NdUASJgK;e7;6_0Je+D;NF_3tCX znE~VR?DcZ?FZt_PISfB#0Y0%=NAmCRrM|2=QFEg3%Nb1_nGOJ*It-?+Q)|2;c@BS5 zZnw*>lT<3nabtY{xbHg`Fa1cV^uw#0u znRE@roGK)j(0oz|O*9pZo2UJI3JUi2gu?_=Xml1^#CMZGZ;=fbS_aB;0!w%TG(`mC&l zc4q=tIm^ychPG3&dN;Q0i}>++1mQ2wW>fqu7)(Rl`bEpNO1_@~Y0|TWSv?E0X`W}C zOLuO}%;)*E)`tjm=eN2*4pqc+Zhq(kCNa9&7nM3h===uULCK-{KM=8Pa9zGxqI1Bx zuUVe8!P^aTAN$9hz(kKCWG`vWM7iEhh`p{bB3Z6lTu| ziMhXBtv%I6Gx)Sbz@JYZ79Jl(W_DIrlQ_pfjwr>+>gvu9_0O$)R?*s0`TF&nJ8-}d zXS4)Kvul2`E-+HU&4JL{;-fWtQ)iE1kfe>vM#^&FOE9cmcJ0+fsv#?m67g(;{B=&n zhQ(5v+G$lN)WH6u;CjtioS(c7zwY*;RkH?GZim?9nDx$RdGTJQ$1|krr|frOE%Y#R z?m78VCrO)78;9dIHDO7xDf3Bz3zNdK+dT%;b=df7e0HDe5WP&OCIg}=S=OYZ_PIpw zQ=N4}HCe+;y8Z-*?%XY_>SXAq{fqwNBJO^v*dh#A;}I=JL>f!dv@0o z{J51#)Ns7~UC`~<6W?0b%nb}QEH}%F;SzpuaWgsK+TjGoMsb;dr_xsDt6alx>zVrW zZ)mM&D&(bC&l2*9+sQ}?j}ArYDEvq|t-O#{;Ztg+fBU~FrDpnQNemx_zZMd5_SF&( zuf?r7+^~E;)9LnVG2ChE9uqTRd8QM`$bGqamS-J!SDxn|UH81zAW4ElQp(F!`y_Lo zr!9uBreh+lo-+Z6s@jL1hM!$uU;k(xBuTL9c@HCm_NnUpp9Axp(&bdboL~IB!%o`O z%kt^^36&pUW0$0D-RFyNWmg>2A=05p@Fwq(ZIB^wzrcfw^3&m*vd-eyx{MF6D=*P&3tMxX-R&a9AI_A%V#w4E5ogPlJH0uNs7Bk5tWJ}X-B ztJQp`ErI!sh*(9-4`|LluJ9|UG5-4v+-I#|E#>pIemt*E%|4k>#Nr;NOcx(O!<^M{ z@?F$zv8@rp9@7=7KnOB_P{JeM{N^_c`FRbrr*B#jMorMey7{C=z&=zajQQKD#S7!d zLq_$h0LKp>KCByoLaB27VnHRAZeGcxCmTmS(*n^MKmE*EH?bI>mj@0ZzqWd9Uhp`% zltPMGpM~PA)YV5)t&L0LaSX*lI^4KD2*XRB*F4?Kg@*l#H=-M;wnY_GILa#Gz1b=stD8b>h z!&C9>_2|#F+jC%=uo6Q-pDWbk6);WsAUa+25Ny?1P%h|S<4c^N9q0tQ5m_^ZWSc=eIdxTE;VVih zJ&LUlqCUCtBFuXrR6o#}O6U8$4Ca9as&kffOjvum4O4J}Cdi8nfJ@zy{HZAwrT1%F zGXb|bqxv*}xh4$H%7rFz(l*Z!mp&HZvOV?Bo%HE$G324L%)s2OQl2Oi7fH4qgI%b1 z>PG3`EaVJ0Qx2qMv|S6DmI)M7XiBv3s@ePX`ez8hUtNCr<(Gf-uloJSyBBQ*lq7$E zTXyig>H}a`+*g{i0Nrj46vuI5unU|ybLLDR$eI3cVc(gzz!2Wg^CqBY4r^9!<4uMic}`V4-0V_AS7aQ0JlY72gAh^M_89o2E#+!{uE^7;>Xp z)#QH*N8^M2rfHh(g`5mzHPm+FAi%ObX#(^Ob2+@#f9*TyPV{V6-Q+*;kos&|&VR_d z@cL}}&#&7J6a(RA#`y$ETO<64txoizzT)T`J?cY!E2QG8$oO?QUpvP$i+zZa@WCXF z56GaThJ-pZ1#!;;lE!J)UMv$NMF{=Fz5+?ZheF$tmlW5j{-oN=#hd?(*!xM|ev~y8ZUs*{l8czw2G^VxM5YecNrf`LEXdH{X0SyQW(8 zVI<683su7aID8N5K@e5}1*YhAHnP^ba5GWW3w2WPp4D{^P78$tKvXzl;#eyI#xTc; zpDz->3)+j}7u&H;sUElYU#UA7CgPntj(XnF9XsO*z>a?9{`-wW!Cjf0TyYBpp=g@= zM^S28mYGJ=fSr|b*SFKbF#X$nYWhH})2SVpp5m%1Lp$0N!&qP@#mw5#`!g<;G9M4_ z!OF-|RwK!EbiMu$)ITVdN^TU`7IEyQ$r=WKUqh0x<5of^BU-L_s^Ga`u+VB!aGXNB zl+WAnx<;ds1B3h9yS^zVidMVQ3M#%2Vos5{V#=0P^ev+pmvbw^Dwvk6DY_mYgb+n& zYlQ1^dZwT2$#v-ND2B^@B1TXgO_F^@q6LMO6a@5@@n5@J!0v$FT4_A})6~4@{2?S| z8J*$VLL`3{UKW_-7p4Qm_uf*UX2plU6?)$>_{|7Llv1{0B|+1^fg{9uL}{D#31s}I z;&TTm43@euo1}|&+t@A8(tvje?G6FtO{@!yU6q!C=fE;{-0Sip*TG<#Vcqooxr+bd zZ>)kLs@~gJFi!+<18UAsK(TpG*1F3BV zv=^a`qH?7E8n zPB-GTQ}=MnUSOOnBw13eaRh2QW%tbNT%(O9E`3pwF#n~XXMA|zsF4N7b!q5h;noub zfGFR?O6cT_GlCEkMcPVEf9PI82Au;Ubpt{>yo}0&= zxPeuw^jn04&!y`tY#!AOL%&+re>gQ7jquw>$3Mz!)?g#DCJ{w3G9Hwk4=@+Ba>wE1>(9#DuIA zd{fuabzMtzs@o4>1HS+rcjuCdHRm)61r;(~UKf%iBg3+9;DB+tGOCoZlop7(cg}By zVME($Q_~F1k`5f3XDJK+Ed37v;Pr0+5AZ*X|7Z6*G2k|;qiGK(MGZNqCZw8n5`jVz zO^}r;Vu~AxK!LK7*8#ng-SHonFz$9wewpA}EeYAeb3`sz{J4rlW3L_my+tbdB6bz% z;q0Hb&7ACZ@muqS2rfLws@0|+?}1!&qc)&!_^t%&T>m=kMrYBh)JansU|A#_7?z<% z^`S^OUi=N5Yph&YDup@A)^$QOZ)!%KnesG3fa-RY^F{PU4XL&5uiM}6ilmvQCMk;M zIF9`V>>VKY7-aXV(IE^YsRI-Zu~*mzYd3E?&g%7GoDBJq)#NMmA-9f&M4C_>S1D_y zl2%q+N12dF$e>i3X_RD-X}XbXz*{_jni!%CMdl~Da|QFHFtEoQ`}HbpZrw8_jI5tag`lM z>2Z2&O%>cQlmflHr|23kl@?)HB)3g#W7@*>z38>*O*T>?dE-&iWnga%`v4fY+$Zwf zu$}(PGorqU6&%dBw-Ci^b|KO-)r4LjOF%g8v;Bg7_uc~XE)LT|kmgyW=E3ioUKEW- zQ3UHz)Y^!j2%$Myl|J^~UzSTX|wigAZ- z1K$Su)UnFTjR~pbsRT@$kJm6#Odcr zya!ToH}QYor>#1vpTu!kW+U@Q%}YD96&A~%U{UhI`8?;q6g9Y&{rU=4)rjnGAL?Kz8F{LD2yv{ly##NO%fu+ zRv3Vvlcn8GIGMhBkKx_vK5I%I#P;LntuR&ZrGP~6ZSB<9#1&=D`zm;<{Mg(_#1*dn zyXdXPcc5_}gmoh-8PtC%Zkatv#T#G3+kGUA=kdS0o?p;)aT9?yCGFbLPyxLi(ozTp z6h7Zz-feuM9fDmzdor`xsdT>iKHV&qw)sKel*>*K_}fZF+*;Ue2%#IC31RGNwJ@wf znmQcp;*PW>sVZTNsH)UTcigyZ7mh%*c1f1;u3b06U0TJh5&W%Q_pnFA;y!u>dKf*4 zJ`jVgNe~8IO*73rW*Q@Ef_z1|rW~oG!VVhI$=5~V>}t`U%98&sDhof@|DVxADQe$rxt{8X)zb(4_%{I_o}mP1Vg z42I5C8FSqL44M|6+TI+;{xDW@D>fJlR=Pk=!Ce0oGQAeQQAxj@JhreIZbz@}cx}v+D^`}~R zQdK97CHPCpd#=995LnuESn5eLt_YqPSngl#0rYYth<`6+tO3_T#7pk>_+R&y0To+V~ea zOVX9%_XMSo&3%KQWk9L;UQwa4mBVS$Ew~LDF@WnsA1K=M@lwuMc(>wimy{X((ffvr zsW~v~=ftd8FnM3sg1Z;M-mMDM>-0Q*kr1bwQ{4Vwc5o(>WVA_Xn^+E znW~L1?VpYM=FqKDgpf6{MLQmrMO%tm*j}i+?yn%c_1pMn_!4TNUFZSym`_02n_LdR zIk`>c9jT(!njO1rQ95|(z%Gz8S=tQ~bK%A0{%{g{SvZf%PB_4%zYv5C01N$AyWxzk z7gILo7EDkkW~b}|5dC;rW}`Q~=}ioj??!|jY_(c3V^+cv-D*=XCTl;}B$XJZ!I(@f zT`Ll7S@|dOVQAW(qy?U&1wWO9q3dH3%-P{f`jO0y8B&Xrd9fpB03?3Pcl-Sl6B82K z)?J`d<-mahYTVpaH5ij+nW#o}@ALt7B@@9F1=l4LglfU#B=8?-uTw&nb!Pao=6`O1 z7f=n5eWdA|gP@WJ=ZERVFid0RFHtQZzVNC#C9P=Q6h7L7Ucoz+_OY*3&`o`^)9Kt@ z)%=?;H}!p=0(AcT`SSc1D!GtPxzXXiM~xH;6BC63dEJDrMP}L3YI-d#7G0bE-@y1^ zG~K;v==YDg(C_#A{0eyFkw;>%t>OjEGW~TyX&m%r!N#{QN2zEn#xePgf+~AK;b&Qd z8o+q0kL|$--DcCAlnS`%Xl)n!dxk!zxlRw_!85^`V(frI$md0=WzaQD`-^*<4!B(e z$WK`|<4V6KdDGGkkfRuXzGZ@C=5c@h$>>+NKYWl%`4uKh+B(%IMf9InAer6Z%#M^C zn|)aG{9*^?MQ@{aGb;L?_V9_b(a7hGU-gchBJ8NHYki^;b`&TheWJ>M(D@jWvfa2X zD)S`;Z4@?}Kd?_(CLdVvm;Q|drADtJy3)PGgX8ryd%8~6bbSpz=UAz>CyAu!%Y0bK zktxGWSk@JZtTDERyA1j8dP;k2*1UGKmA2ZEY`uup$QIj4oCuRYMoOswuvOPT6U+|{ zd@Tf}3g?b0C{@I}!L*~C%Zg2=8hwbu@; zZWZ+CCL!O*B*fl(`?L!n2y=>%+B*k z+LH9{dlv@PBjOjbf(^Nw-*gKhocmG!pllzL3}7^pJvjTvgqo$yh@rQ_zL&+nZ>bCZZ|$PQ3G$}VMaz4E+j7G94}=p0+gG&-qWfmd#IxN^lF(>8|*myyES5Bmmz8JC8fs$_#`3HPJlCE7sa^{6(8YQX)=!Rh!%s~*g8q6 zh}2lDl=dM^yfsqU{i3E4@$p4rULI|>TG&q%P)Kk8o{FgWo-iQzK4%P1fp0&{Z%&(uC>zIgxY@=!}=^^qR{vpl{VyTkEA9{#Ol4=oy z^M_Ut{S@AHZ#|?+GAnUzkb?(_!Fh?vl6vT^|NWU<3+U-4u@OW53C_%i9JEfNt}dX8 zsA6oKENb@|6Z%Q({we2p&&y#R79^So=(O(BQ>0U0zLvgc zS>*QujDz2E4wz5g=K~~tEHS^2HU9o>&7mXcS|2!Omg(1}vB$UzZ*emgy>;DZWjGIX zk@j$!%KYor`0`&9kdKzzJ>vST2LOTa#oGDc*?=GZAl8CJ)mGVp?T_>8#kEae7} z=03fR0;;Q!AJSLh*v+UlRod~EPPCil&^iX2SN-?`doHRR{m6qr1%#< zh)oM*lR?;Ner&yVy?kbXDj`T%mvCj^Dmls;)3H%9cteFCir(0gOW%Pbp*p^3eg)Yu zB42nr6pK^$3>+ev51$GQnTg5=n!ZbVM~70x6SGUKcQQs_YP0DH0S5XO5YFmbZ0d&JO z`T1ZXo}HVWi>9@lr0LD%)T!B7!Elb2-_A`_P>{G`TU5s&X-~)+H|PJaaf92IPBAm1 zsM*Zt6-7}Ri|tuek@3-TJ||wa2TnN5XWnp5(td&MHlV}^&kuoK_c?V5iSYP_`<4NiW2Bs++>Rc zaj$${bwxVkEVxSB4D^}!*l5sNd;IwE<7@Tn2KD{sXfgx#Rz| zEX$J_vrJ|%RdO+QC6yV>v>1~;%afUIFTS9yGuhMLy(n6LrJL&a;74KYO@yrCGn%*D zatj3q_tcO2>xa1$JwYjD=Yx>{y9dH^a9*XK-1h78D^EADrNSM1z=hdr&3ZD?UG{Ay zAOobA0wqqW0UfZrj#Qwfv)?DE#QxkBY9GR5;qGI{j(za*cMRYEsHQdfIn@YY?_|9u zj)GQtr&qaQUwUstF`7eT*^;(&hm|*FRMT3vZ5hzC>6pGj(G$Gai{miU_kKvbHOisQV;S)yL#4gw`eXD^j)Q!ixRzCeuv-_VjurqU48?K8Q|R3MnlBmtQPrze z=DYOb0^j$i{Vz2ePw7P1Ad=%SSkG(3pA1)H%+Z*?VHkU+r>Cc#cIW17sZ{dY$!sgY zgme)jC)3fN+k+7bMm+_lmE?ksZJNXzy2d$&6R;}*aq$RZ0Yn;UCf(WEK^Pv@H0l|` zK{OMF;VqmiSf6m#io3bs8HN)j9X++Lt6C`dRMV(mC{zb9(dZ^oEtyIfV8L1!F3i=U zq}!OVDGlLrZH-ae*5Ujf=i04zxkVHDqK5(wZwE!4BZWR_mx1CZZjr9aalarQ){zjF zvNBu!rUGkm)q1AP{zA40>l=>nf~P|UqV%6 z+G#KuYIvkFZS1BOl4F`5V%NvD-C`4X21GHN>?NmQ9*irxInU+ecuEUtB4wT_PA)>K zu~%Tyq!+#P`tC~@1+?qRz<5&^>{o0XYG#|79{-q95fGJ6W?_$}S^fBB6{DaQ?Fi!g z(d>@!&8t3+-i#s6*-*z@d1E_e$y#OMuX6G@EB#;i#~5sa($okYSMtK0R1W$8MSX03oz;GE zoQl-$UtW3_)W?^meBS)7pY8n!;Ov9e!kl#%m#@C7baZaDlL>mY*kLyp6Kd-T8{-kL z{R~@opG+oB{;o&?cS)he$KQRSzCZE}q6LCnn3H$Wn|VC~#<4@7YFb&9z9M=as75jg*>faM3eln9m-^ORrd_v!NTX^p69dT9HssmH+NWf(A34FM+N zZIC%e?^qSHc%a>uXlLVX`VDzlB979Ef?@At+Ka-IWZV$Dc8(xL#k)nbVL}~e6$cqz z{h$p=tm|uJC&kM@h#o^vqIaP8p^u>F(Pz=OB=|Ifkfe!BrIUWvYH|JaD(xB!(u(4a zSp&f36tW216!|8hLpDJy6bZ2&(H;z=~(+pu?a0 zj(@u{p_s5D<`swe8R7?Om+6>tT|!mmM7YWho)p^&!6>cKaTxh*CeQ{)Z2NI@5M7!EZlTu!}og~)a+YU zzk@p5KE)&)#+-(M ze4odm45ANG>B;R5vm{g-ivKa|9sADZl_D8$NuV)S?ok9>@A<^XWcG4PMCy|&>tolt zB|cJ?Q)5N7(x2mI^ZyfRxA7E$8hp0h79#G7`kEgYS4=*WM=~?qEo@w0oJQBcwaWeT zQLL58=uea+wv^?1R09q?b8|2<=~^$+-_%_|l(rq0VMi(KxS&)FG;kd3%04mfBemlZ z;xb|YV@rvt#Y)9Me9!gP(jVzROL)*S*>wIP({>JP1Ev%^4#PM;$8J^wQ}t8|0+dpq z0GI*?AdbU<5^J?Lh^ekslq8f=AV9;=dK>x}`YHuLpqn}=Q;wHjy;~wj%lQR^H$p=) zr|And3^V#We6}NB4qi>*e~3yAHX0vndTj{F`VBFgu)7^^|&0 zwMyt6VnQZq1jfuLP9ChI+Pro;xR28-hNo?A2SPKmW6=?NyR+Hup3?u(a2^}E$jtbm zw5GXCuuh}o!*O~NINy7;B+&`$Y@3Naxux?za*$@8Cx}O}kkQMO&ehSVWI@+nhLD*J z{#9wVV4mr&tgN_^u!s^=U}`D2E3Ve+bk30ajpe76*6#0`)r!rSU8y#|yo=hz9=Jcm zAer-u0OR2O(|5i9o>%A}>c#M082!hcAPj@fA8X@kjf24EQgS;8@K->EjdqNx7r%@P z+gRw=_T$XgSFw<4)g`wD2f0kJO)-VaHPe%FV-g!mMDFS0uE-+@O||?8Vy-Yg%l|0` zc|}yVqtI8yttlt*smon$(wikDi8~&Q;Fx;>+M>+Z zo-ZU|$8~*6G42Hj0rD>H<00&$&muG_QVN7hndG|;nf}a9c3h65N89u*85@YSx*&%r zTA%n{JB-S;bXZ1lB<_3HNWgg2$w+sZ%6Kq_0r4E5DAv>D;OA;fG*KCpc;(=pMEHLT ziocKJm{7_a6f_6{8fb%4N@7e0oDV2o<9B>U0k1Y1fD3J9t}BTYYO!9kfz+AGI551* zlq+#}I=$|?>9mWbtJo@Lz%#|_1ngRUQ3*+;>t>cNFfbm&S~#I$~h`i3Zn38$42hLTAsKBo&dios-EIG?Hq1n?|bR0#VrH^*_z`V(Ug)qjbsKM+ki$p(Y%%&?Ld{fqe#{jksavGxrUammFhUU2@*9ha<3CdFGwv)Qdt zBmlySWr7FP;ze=vfBg2p#ebtTpcv-=ld<{#gal9u!Tc{F7#qUeC5SH~tuLY&mRv^6 z7y`%nvcrj)x{R19%nV`f)DZ4WFF2f-!f^)<;ZDJ50atBpZEbCBy@Ze*k$Uk>05`>6 zDt6|7fBp5>ulme2#5|PB9gKHm`j8>UW&Y~*jA3G277^pJsL5PIBIX(rX<}SvGiEc_ z5F5azDg7q`_%4j#D3G`awmBVsXkL=7M8en4I-VxI6-?x`QHmU z$%ggn4v$9BC>cm^1O`VXZt9OUerv52gCeCD5YM-x|7hpvqS|O`eKH(t znS+vyvsQI5;Xq2`KY;YNu`fRHP5S= z3z!iMw(NzKdfMp}!v(6fWR50M{w~8*6gHa+3!P3@b;Q$Hf|V`UQj*Keo($^^l`t3+ zp{m!-s4^GwWQhs8%YFM`Dx7My+gVs>Hp2)E_8k=n)(%rj(}iKt>7?~a*n5I|E!-J& zyFsH;X*^@X;op&b7uD>9hwKnzDWx*FYf=JP5jsQd#G z*4Iv#0=L0K;_lL>1Gelw;*fb>TQkeC<0I&*bq!BGl4aidB5L{Yj@X*7m&(-Gg3_J^>tRFofga15cLw?NRJJn)S(K zv@Dkn9|ys|vMjn|?qwNW4X8!EN|}0Z)m-43WVGT3WWnQJ%CKXoB(MGg8Zbj_FnaTB z5X@$6KN$qUO84gr{;2-j@7{dj|ARSPV40vV7_&dNYY`Mv(A|0s^2x(208_lIji(o=()vUwk=&B}8cgMqlPPYIjR~>1F zaU3>}z`t;ANA*UIao(s$_S+u{`n!%1J2D74-QdFSAs5{N^`8HzB4n!&gYIxhjv{4c znsF3IA2Ld*)HsEiG$$LQp?9gF29(eZEEtNRh`LC#w=wJvib2^aOA#jkVpUw&;tf;` zXaSub6zk)T*SQud(UeoL4dfD9``L9Tq z<1p3aFplDE#3_tgjzG^Rmi#Bm3exUz3EX2@p4Q&2#kUg%z$rk9Vh73{6UX&~HB&GG zxBp>)fl4oHXGRub#y)8KEm6mG41ko0V#{!lLAC0*oL~SY#_<&Ak6dge7w=` zfu9!jnsOX_-W(W7$}M|h#tZ=vJV_Uj!>_~^>NRCb3-Z=*(6AhBH3DCK32m0;T}o)M z>}U{vJd7~yIF<#(m(K(rVJa*&Ex<;kZT+blPB;w);|iS@LAEDtK3LU28&Ax_Ke2 zmuR%Lt-L!V3IY7YBr0+fB}28_Ie18AZekkMnhc7loIlwe6hpyKs2-?Cu#%MlYZ-*Y@7J{lL5*Oy6)6dTm2@eg zObX*9X;qLRO2KE*xDtx zO`Hr+*$&`3mg3zCW84es?Fd6$FW4#aTr0ISVVoX2LxD5DmN`a9Mr#u?{o1K36$X$h zYPpz5MZMG*l!Sbis-J6}`_)ws(u}K?#(-_*V!{mA#w*XO=>z&)0A>s@!GMi+7&U_P zBL6km0Gx5(4;?o&UR3eiyARJQjVuO;vqmK&m4gGgUM2EO2#yo_K5+o-O2dodTo}q6 z%f%RD#xMx(WAKa(hTU1FUyG}33|L#$xcP?3s}mXGOA+iNfkIS^H1x%jaXc1fk``gY z0U@E9`MJKfG122}G%iydlT>=KA5a(0ENr~`)vtc_mCGvt73iNib0!~lC#Ui-H+%3+ zAAIn5Os~7^uDd>Mw3iNdrWcPNKmH(%7pFUim)gds@4B9XNPTwazKCYf zHguSG9xlI9NstNwlvH3n7O4X4w*9B|segmbsgCr2QB(97W5?*X|5$$N6|Z6rS2?uu)PnhC+jW1 zY*I}HyHK66tKL!ubGXr)(M>ZT6y>iT(CcP(UDGVS-2;gxa+fi`yEw}oSQ+V6d+sak zcX!5pXHkAxv_1mAgSdPwPdWh{{WKV4((R+v-eSUy$iwDfCkhlHkV9Vd{b3mDwr!j- zFzC#(jO9XpI_J8)WfD^8UezLWF_%g@@n1dX(CA^`iK57mFk5974apVsxrrKZ?p<4{ zR{W$XYPwK#PG8N>Mt`jwZC0#b!L-J)ukD3WwcRt-pR27bV8JFc4x#Af8E9i;f*Lx^ zaebodB2(48K)7B}2;tfT2Iwbz;D-79OuhgmYMP*21-(hwE>?QzyGpUO*jF6#g_-9~ zZh(J62jc;a6QU^af&>^#`scj-VI~)~pl?xKp5yh}ocV}IjpfBxGWuRwA;kDwnG6N7*W&srIs}6FZ6HQppb9*MvruUNF?GD>Mk z6~}5IiyVc9R8>ENJH4o?U`f^K6!>g$VT$Uigq14Z^oqj<{+9n^5CkA=W}r))OL|~x z5)L$Ny4#olPgYgHP%KVP7K?yERVA;emqRqGzl0LHfbw^tmjo%{L64irbG<-b5d4CD z730KZOKbvj0gr8UFx{NG7-WC1asM6@6aS#>Nw$G6U*hqbac{%}^A+80F6T1l=5lzQ zUQ4pQUe%r1OEiCxImY#c6vinjb4&GR}P5LkBN%V}=@_d)0 z11@w%>d%jNfm;xSVd{oFu;T0;8zAYY!)xgSJN9`{RBbEBKgapsxs7-}yCr;rE-*jg z?z!@=SQj?aF(&NIn}k>SJj3Sajo<6aU^60k8lbuk^EsPdwu98_gVs$pD{Bw0PENQ<(%LbHdEX1nJ7UxpD! zAL@1=>hA4yIx1u4UCTx;XDr`kGN#V`liT-Iqfs3uax!(iKXTsq-Z zNOZi3FRWViOFwt3p4+;2i_-+Uy8d7Ztn=E=>lTzA{BB7hMCow>(0WiFen)suAw(&C zn-D8vvSrCEvZj~AS2gYCT;o+gD|{a4XRm7HZXV0P#{UT{Qj|l&d41WOX1;CX{{+V= zzTOds6eW64(@Iz`m2_O1sw1SotRC1btW`lBbW09!Eqx3bZgFa{lL}6GH+vbR| zV69`skEgqoI{s0Q;qWT!qL_-d6?s)}DAHw~5@DzkCM2plGcE}wNmJAo=QbLqS!U!% z9Tm2A8=2lQaM>vaFhI*J?G(?jP$r_ifv@YBkHU>{{f4N1O|#J6@PyjDEggLFxEgik!9-#ll@( z@79N4kFjA%=d^G1dcEHB)_;4uEA@K4zFn^$?e%)SqxE{d{ z4GnLCdro>9kf>l7fW^jH&x+=)UfT3?xpuXIy4pF%o6e@Q>6PbdHo;}1HJ`T{B_=lD zIcG~L525oJ&`omb;*Ad2 zkEZ1s3w!jAsT!AZwCF59mL{<_JoQeOq71%OcB;ZFn1g~a8N-?{CBjqvr9z=nT}MyUmnjK-xi)_&8VTCG+wW{fe6tE0`7U`99q##AW5c|K@hLJ0-Hgi?-4 zk*@@RlZ4_c?%lk}g#<&ek{1MXN(lxalw#5tgk0-#JrnH)00DAkf;EWF+`rv1Sd8`>wo!CQGI@EKjYvIr~b4v8nQ<=)98k46Id zIMM^8puj0!F`2B7?Wk*s$QPwp+v9o|4l$HDq~2tF5LcS$(T&4(#zkqp{E0#Sp4=9j zR;NO;e11(n7{(EDE87#tAoMtwF&59hoxU+(#&Cq_#eclGj}OE5&?;xG3*CdzgoGr{ zHKpsW8B7TCptXgSV0eVq87oTe8bTD+fPVOOou(IRwHkJu1lo3lS-WRDm>`xv zb{w|@k#KL>H>K}+erf#W87$BLBP_?RYg?Gp&%qcJ=F5R^+3^t{$gyJt{3EelmuBPm z@#DugjIv{>!q?L$de(D)Jb<-VfEt;@wup4FMUQz@uX-3gOGN7nPM08StwVuiHv*_X z>AKY^h+NAkz^YF@ukCI}P;=shp~88_Gp1ME$GR9al}qx_j6_`{LEG|^q_xq{-Srh z15woS177<+I*wkB9vMwWz-oj1yIG8{QGxDwOUn$P4{T#AYM(J1RyeQmE}?`Sry5RW zW0Ksl>`)kt08v1$zrjR$5~2=(Yw%-AILLDkCdgb~%cj2X`;A7=XGzru4;|+9b|2!waQMSedqSz;WwDF0 zC}iUGvLe4E)@4owKqCr#bJ;b-mo@5w7pkkGq052|HYK+CH9Pc=e-zBZ) zik;lshma9dA)Y(iP3Q7}Qw?lGBWhEeBzPP*TisXfjyfGk0Zh^$ z_ccXh?G4QD6gd7&j78cR4m;_EJU7|h+#5BoxB%I`Fc-kBaDC%Nec!!&&9N_wz|#Ix zBA-3Mor60+zV3O@>5MkQR$#IU`N(`>5PRYDifBJ#i}z#GHb6T?NW*eQebmhXucgmG z_oH*@z359g+Q6Mg4+Lsasx1Q$Vn~35?XL#};#!v{kG;a3X>Lr$!jnBFPCLKZjq#u> zS}JwNivIJ~Mnzhrr!dpi?58j72XG_ux|B>ph^`;8ZvJF<0=X{>bG(T(8I|Ml*pVlR zCipc%wt+EvRM@L_fcpP$9h^LQQkk(7ufflCB(S}AXS z|NGysD5E<}QN?yBqY5t1^PJm{XbiVAso3g0_uRuVX16-3#u(Lmk38~-&2y$CyB)CJ z)0DBAa&Bc9^Lze23`6X!bC^=gJp+8*!J%u>=}V(1qKv&sinCG*Ts?dCtdMWAafF4G z)s8oRktO@0L=^^Y8`BnlYu= z(5hsyhOKIqLNsq zGd4#3(h%*V*N~LkI)dFA+443I>udQ1*UG;sy1XN9%o0L|VPy=~uXj@7Mun!Ks zF2C%HM%NS&e5X2CIc?t*!Z9nfVJT&$;VS)h%$T}tVbQJ0xtsX)XcPxddQH=S>v;is z1$qN|Kl&WnM?XcsLY-$^J`ygeg>(;aoCQ_% zv?zJncXStO*@Uq*UKFVVg@lc5Fn`KclwW03@aJ$AApy;NozIV^{{t4T1Hf+ZIEjH* zbFCC@F;`JWb-mH3Yes2PMS^n?spkBj1z>eW-~nKlx2RG&ufP!i7VjiLJ*u@j?$G&H zmDbdwknF?^Fm;Zv?dhM&`SV`gh>lK8S#&=>DBv@Ly{e0E}MY zO3Ql4Dbd@ZIjdDqf)b^-bA0BO`rAXP6<<{b08F^83FTq^A;uDnlf|CKgs)oRHpfKw zx_ELVW1+SB8f?J^XR7P&0#ap&18qcm==o)j-6$Zus$<(|0i8h)qK`lWoc>@roJSY| zn7w@DXeKLCeS{e?jtS6)d*@}sRacB01P4|snD7E6PF94~4yBpF`UCbAb_C}X#|}ga z2D8r8mpso4*yB;*i5uD_VU9eKWAn=Xix2DCAp02@6E5X?mzveQ!v(MQ|13?$q-3l) zWCc(dr_&9Dw@$;h{18*A2v9$u3St(>o9#~UAh+3)`gX&dn}Ip4yxVGZ->Mz*@v;;` zE{}6w5;3zi_A`4ZM;mAxor{h{(^W6Rh3pZ!e_=FFL7=;*OM=mxj4&niuBWK>3$)Z} z?R8EG0zzRu8v+rXT%65te5njRlTXv0qf{2hureWTQMg<%oL~GHFGx|mNN&18w>-Jf zZYQWykK&{qTcMl`xIgKrz)=lJc2KunZXLq7+jPpo>L^5k71O6G1_IiemM$E}ELfJs zxQ87kv$MyUW!biBF)3N554=VuC2J|$w$AQHHAPfe3zeeS1IPCO@4@{4dzdN-pu3zm zEvw0SR|7~0?;6&Z26cM9WdpkE6(|D%c%(i8<^s3gM~SB_y3p}DE*zZ7tA{c&;Gq=4=TC6 z%(P;$4TA&y(vyx;$^4!JR(xOj4}bgH-xgw^_@89}agz7qg}Ck^**5I~>Z1*Gb-WC{ zko(bV(R4L zI)qCYVvD&zEbT28JT1(noCa*b1m}$52o;<<@VRn9F{OBZVQ%5l8IMZ^hbOG{NmoC! z&xE%Vex%BLK_*;&daHbIF5`nZEf3krlCWm`K73ueu4|F^i*Q{@$Z%F}Jo#6rbX|A6 zM%y89XP#%;hYs9kB}($=F<~=MEC~>B(oyPsyC`%eX`DvS^42C!5bC;2g0-WrEA8wA z48{>`776f~=?2JIs+?~U?%f0NkMxUs`qQ7DmanJW!*G<4Kl+8epaJxPLoJIs)3;~; z=`S(on8%F8{AbsHY&L&K@<02tKO48s5bOh`Zxm9>N4wj@wlA&=0p}6_d6sDYb9EAJ zQN%8O!&VmB_Ui;PpwqFX0>W4+fZoh<;us^<;ihATzl)4S@+m@IbUq!8Q8u)PqA4~7 z^sAx>&90eI7=~+6kFw|EDR^J_mdc7Wxhnh27 zm2rKjSCTm)I5xVLeDT<^V~fH&yE})TI+BmCC>VxH@-vbV^s;f3_xv$<-oL&1&2LuK z>GNLqJ{Vm6*0;XZ#TwQqyQXMalyao_tZ4TEd>FkRy%oI&eHcCGr4}0ZbW~d`k)x2z zaYqn>$C;K+&D4SrdqDHDcK?S{-~o!+hw0=D9X0cl5$_xaZCjEe z+qCBNVuOR_8wONKVL=evasYl`7Q}G-0hwu+oDP(FG;cx zhu8`OM2#Nf z+%Bo_viql8!u-_nPA)Gi8etNaZTrjIm`4H(R}8doSY&fDvU!zmNKplK5h{et&Wzx% zfWoSJ9hK>csGCXALHB5e8pHZKhFXWN!ax zD_`?{YW3^3Fe@`7Z#r5~w<%S8N#p(%s){K;Qo*}(pC4Ry*=3$f2r=Vh73bA1ooIA% zqU3UQsS(3`=GxP~KfAc(2aD#8yLFBGWm(E$c*CjXh+nPD<4?mLg3P@Id*JKnGQ@FB zM!~pxoT5TIt)eEZT`~Qyn~~;RZz2p!(7}7dU($ZBXPq@vqKg+hX4yme+Kev@V1IiWpM1D2;qgdr z4^M_DYRzObYSU+#dWWC)YZi}!V;&g7caTJDWl(r!nQ6762_VIcIF;P7XtlaeBwZkLGfo#>UjcNYqP7Z;Cci5n8jBB7gTM-~?` z6bid{ztSENzTFE9d5+zF+_t3w4;EyK>vYLaCHKPeB7jIJ^Us05w{| zj2q8SruL3%mz!o3j)pXVqtyYWiZNuczYX-q%-geP&z=*GVdQlyg<+N$Q?Mz$Q2}Qy z7+tt<;nAF7)D2w9WP~)$HwqhnVwXB4*H5UGrc6>j@>aB>W?siRJU6PPELE+f`-W{i z7cyT^JV1}OEw1Nr-^d&BaQS9{7I3XDzxADL3w5STBJGU4n#B|M3$a9@g6s%9{jH^1D(Ao8SM1q=vf^zH^ zIOmi(oFif_=7ytFL*pbhNt%RfT0qDozN+AA;SHT0;)-y_ShFjFX@c*^njy);+dn<+ zk;(*yyJC@y$Rn>Ti9)g7s}~DG3NV;XU^ecnY5`sjA&T-jUDJH`_~l1wRsRhCO9+v< z;iMngQpeyjku^oLjO`AZqRESd5LFiCECnCjUO3PSO~)yNe&6LRvR*sK0}A(ZJMz5s zQ_WPfS@b7MsAoz(gwS0Q<%S550-)elHj_>doI@8b9CAQs#q8|atjP4yp{4ffYJ2I> z7J^)^zIyY`tMweyDm8trFLS2>&~P{vhFQe8Xc~e}f(dcoEKD|vMLPzF?P9Uf|F7V8 zniq3*SDzkfPYO-ywyAD=u}#JXayF(nro)zKm{ger7c2nAY~uD0#&sRcNIJm?-@g(v zN(t@$4Kt9WDj~$ZsvyOv=ALC)Rm8Tc!oyr8pAUBNshZo?vYl4lzl4)vynTB#gz#7SQCrh4vD*X+8c0=1Cp!G=^33yKBRE=}z( z$P9^G=#X`LiIHm~KSWu?%}b-YaJZqKSVwRK2vnFnqA-Cd6*d>9bUINz5NUyB=RYQ2 zuKF@qp(io_GoPeVm5UG@Nh6dpte$Q8#qlMI(3X<7Eg1Ps^w8MthW+kySOPHy)GKenq7(hD4kO99!y!jK&4A$!aQ9sd@WjLy1 zx)xkGdrGng6=9_KwXg6w&hrj z2Cf=mIl@$bPkUJVrU5*fl^Iv#4hIDn-vo9w@cl&yr1Kr`Sdn zy1ZSxzBfzYtMyCSzQWK<)BaaS*Qh}#A*i7nmi8kl=fzPSkJa8)Ot@8DS#^i}1;ePh zw6u8N!2?ByQZOy6REavBV<$6OL)`fCn3LTu9`KCVQgocUxBNW?EwqSa(;WL&^d9sq z`gQbm>{^s$U{@=2;}K%_Kw3;|Fs_AeCds9gZ*0gGl_?^FXE9j{BC8XcN!;GXX33-$ zZpv9B(@89(T03Fy0`-}cBQIkAP0h8V4uuT#xBPa`vb5IiHa=&(R7qd98HZrT&+m-a zC>5F{sg#B~H*}Q{lJva^QFVjsA*HG$6^XF&YcZWq+QFRXKB&lN?H;`zrtm2U7SSTWQ<`7ew_=c|5s zK5q~5`Nn*~l5_dEk($42JI$nMm{<%MBYZZJ zG!c*o!Bb!Whq_9mP6)2GZjV)EHPv^mo{mFRo7r2S1qD|Nmj4 z(bY6f>oz7}Ss`D&&?hHOoPZ##7k!#{MsF+prlHY~=i`Yf#}fuzFByh|%ZDD9o`axP ztGO94SmlkoA`W{~zN)x4z)%V6hf6(>xRF_{nvvV=vtP;BS;l39TCZc#q`CE8382&) z#4gYi?w&8!dm+ytA@J=eY~Okpdb{tej4HjNSkIUtbj=gcj7CFR#1^H`t^6sU(CIAg zwi`z4&$iA(S`4$zEQU+Ar3vG-oOka(O2+@Dn?j$~*}4K|tjgdYY`}m6XDAhUFX=*5h zYPpZPg}ishbw84?R;!+w>KYyYbno81jNM4-tr~pM_&GO2L8GbZSF6?BM_l)eTgZDK z&1o8ujdZ&^j6c11?_Nr8WbB)CId1*W)(ERPjyC(7=tcBBxwtriRN9LMo6(Cfd*>jS zXvMAgBuXa|0y%51?BexJx6f~u@J-0zjo$yG7SqLci`4x&Bx=`szy2{hOP!VA5^F!|wPg{7i#3FhB@9d+Xt~YyddF2;5uT=eXp{cwfIU5EsGvZk$Mf0m0CW zx{s{*h?pgP;701P*ndC3ziliW3}g#iYf7_nu@3DSw*>w&jbp87**JDowL76H3MX1K zmj}*$iY2C~cO$_kj#Ku{YOCNGeqd2*QqAViLB-+}SmVESMWoxVh?vu#90DV#R2GbU zJ_2$yHKyY+#NZ$~&*Lg%cszhGs8<4C)m*^Z6h1eOs6Q8wLSbU6ScD1PZn=UvEmuql z9lJ)c#dmlQI*abH#4Mdk;|`U=Jz0KH>e^t9a8D()kS-n0t*nf>K+NbMMr~VfQtRYV5hV2=Im&6NC2uQN- z%6HbD!X+);_ee|kADsMC%>Vzb))tq%e%T6l)J4^Gf88TDwp7>G7v!pIwIf8f##>*p zqiL&)4xp2kM@b$;!&U{#8)H6a6D($}DJ2cEt_??z@aL7%6AP^fxnl><1;I zV4NndE)(1=J?&c<%AQ99sjd%Teg1VfxWs;yn}k~@W)_;_M*S;Zkrnt6(TTYb=yA@xq0R`7o}lGf3I0-`~YPB?!4agrw4nxBib z8HXEvIXzIYBH{UYEGbw4U`#zmjX#NYCtgw#AHdbvcsNPTX<_5QG=U$ZMTrL16%-S9 zQ?Nw+fGlE3!g@{uz_yGf$@e7*%Qgm(a{3*MPa8}3-uuR2XfXxP&SHg|9%u3@g~h@M zpLBzHre1ZOsg)?0X5gCFsXDX9Bb)Fzw}-z~k~~?GBrA|G_E!3r8cTsCNs{a>&G@Il zM@UXc>y7B`=o!ECI~EBqW>G$iPEFv50kn@ZT8>MnxX+4~Me3P>z8oB!;P0eQufV46 zZI_d|!T6v3HksSI$Ewx}dF$AT`rO_<)~4s63iWn6GYd(0-3j zSh*4rQY0}_EAd@+SRzG3)Jz_dTG5zi>yboj*52IqgSFkY-L-8&I;9?lAGfqMliN$? zeiH`pBC14rmuTHVgx+$+kLwsXndK#e!K1tfP!0aIw9;cH25~%1@pN~HKyDxV_51PV z6Wf*zuyzZHZ(CklTV57s&yb95%WEx#=Rz8SJGw#YDVr}dr+r3RC=C(Nq!rk7Q*`;b z+NrdGfPez}rGGJEH%;!GnPwK+5gR0Z2_-f?vl9nj5 znu6cn6#VNqzxho`BlI^HibcF_<#aZ`P`X8y6}@tldCR8bALx>UHw15sf}s8ggqMyU zJzCLaMZTr9FrS@X*@lb7h2Nw^lfH>14)BtGIX+@^u740iCmY?fdrZqX6dyXio>xXGEW{>5};k? zj4dUJB}GblD4GN(KrmCx(s>WnFJF zX%|-fE|(!2EgFImW9CnP#bEjXrFBT+RC`D=5rH3wL-WS}ySlonL|)VmQvrZ&7c=Kby0*v+H#;1nzo}3Ve3=q2j5^x zK3PjU4W#CjQszgJdy;#}N>*Q&WTV>8S44$c<8!11D$N6p)8cds;kmi}DuDcr(qC@E zP{zD0VURpUlH`0|mLyPo39ww^Sbj5>*Xi{=%O|ir8X04cj|8>|powr|Mcdbr0gT_0 zKlppSo|KnCk|nn&V~jb+SdxmaBugOYB}rN%>(9zCVv#FO(InW`*@Lj&%7u)+KGHJ* zmc}rbc|;V@NGdSe^xPxhC7j^3(g*^s*!5;IbP=#TU4J>jrRBdA@0s&o6E7~t#g;pB zhFGRmsWcYjX2*UtwbilLN)j9ZSz^*#Uw01_`3S0Xw8r222^?H#UI;LR%IZ`VpsJ|G z9J%VaP#tsy>?Urw%EC~YX;*)G^n&dUnnOp?tGwl(Qo?&Q{$iG@p2fV_6-$4&cTAo0 zKsq9&#?haOc!=;-47XCtgZ1%9h=b>@^q-%Ag6Es{?S}9`iS+cu@K?wx>-jOKrqd8$ zmH*)YR~XvoA30XOq}~)5;NmP0D#j^vNl#TLxa#zNZF)Jr2vmOQS@KVQ^;kWJxUZ@I zzTUr)r{tB#+`%&(a?JBrwmbM`4%M8Lwap=O$%8mu^({PI%22v3WdZ*8aHOD{LD<^u-~5ZyH6s-oOio0y=4sF%5Uz5jF*R-H%qDAA%p&vNbB zs=}e@i;1u>dgcyC5s5@&;nyvA&h>04gWxd%Q#1k2e8eyU%3$Q8m)m4<6BukkHCl>bTsBd7q8Dd>JqdTgm~pbv}?Q$ z1Ka)sPZ%&5U@ntCM~02@UU(DgqF10_^-N{QH8)=kb(-OAXzTu zHwP1hdyMpnCkkwy=Co}y_wfE_z*ZKwW?i=|F)`I{PfZBR(sc@^5T+{$qiw_AC+j0fCU~Y@0+XR;MLZwoOwUTSH^rERxOz37& zw=D7HPN&n%-TAUDU6_2e)9G|pxheG41J&{kc+JdLFoG|Qd3@1jm@_!UM}sf~xp|lh zR0nge?-!9YJMDI7fX?u6YD5#8#ZsX#t8+%~wa$z1R(bvB#9!; z$zbVWtBJMHojBo+i9^`O2e%g5)Nig6%;^A*Yz~JW5g1fG$g-fW01M&`hnq)WKshGs zO`oHo&i_OFx*(}9*g%$gy{fk1cHg!_i*qZqZ2#{U>PcYh zYOl9Mz`m{~O>|fzRN&CP(NPtrgUS7agli<8nkyaDMIH#ZvZCyRua zL=q0nfJfX)#fV#q>}TMG#Z4nO((QQ9ClV+=Hg=93%WDZUgG8WI89iapeN^|i7fOnU zHWwH0W6@IK6(KPx@>6^*QM91?NBmPBoLwg(MW`YRs_%7y&?0e%sh&IY^?aoLS#3ju z;sf>5nE0mE)m5WcrQ6ut z+$7>sg-;(ndbGLOde-LVW^=Ro)L$SgsuUEpq zPSH(F<)!0;2M=nq>WWLEDDvFc@t!ak48lQp#n;?p{eC~}hx+%({?g0&1BjY8kfOwS z!?_K1(yE921jaI4B>qfMmL-9!3Q-p|($nhys|9Y6N`a+A-}f7-?<>w#7}ioHflyFN zGAY?pE-Q{|ZCR6hxn;YrUf0^PHlNguV(1Sh@D=6zX~XyZP+OpsWKuGz6ab;1WTh5{ ziu0G@)lJLNdNTie*S7d&>z1YU(N#asi^-r52x){a;>MkL3|;HFLH)Wh14ZO2JG_oq zniVs~knTEzftoPH5J3G#gRV_@EYS}4aJw876T?2kc2Lx=*rB-$lxo{KTnT)NPb58c zo|jTTsQgN4$bk!aJg63O8;RN>IH&yVzt{TVxfZnWUzWRW$PXiZKGr8HuTci!(lc=3e`Z+ul1-Nz@Rg3TWABL$~{DcBBm;fLqkx}99jrO%!9)ehSxZ)}^Z-S%v+ zcIo!!7ttM#8bQ3dtU5p)}R8G5tMU~r=ktg0e8?MasTwj+vt`gH1n zRke|6mV7SMB~E|bZ5auOJkmu*v6zWm@*r%jx-mN8W*B=*X4Y=G<(6zOy+Xgg_uhM} zcjR|C7}wJy|DIqkuwDCRpJ(9szVmfYTX^{I%Sg^Xd$O=5_~%E`l1CsU9E`6PBe1t; z$=p0I;VO))wF<$$r|}fLQvjBIO|@RDZ5N?rM?VRryT%NeC7TfP6TAi3W@6E8ynk^L z7G7^FnsUEO%U|dVMc^w!h9G7dA$JOgjma5wh#k@hn;YgjO7YVfZiVjQZiw}PO?KhC z<1pQkFF~(BuSM^mgcAxlxee}mLN394@~E^7pdm#g2gU*h$jqfKOMsn*r}O|&+yyEb zi^gV4(5I;l$fOAIG$RSQ08GBHQIh_MMX}aeB@t8g(6Rk`gpD2Wt;#Vm?KxRe_iZPv z%J(%IjWX*~5_u~%Ib3BwFP`p8DMWFzo3xr~w;4yEQs?Bk{R`)EYv;?G;iPN|JHfCQ zYZf(|5mQMuvi;DBA+YQZ<^&f~-{Zr246zgXc96bpFvtUfrgn^_US?%BqY158M)lsm zYi(hnGXF=IQ)Oqk;@n+0l;D9LKjRG1x6*!(w#|lQoVa|*xgJ>ZxNZm;CvevYi2|Gs zQ2SI^ih`L4paiLdJvAwd(Zprm;Z*Otuj*VITUNid=%@Z$!_3x}u`R|pGmEX&Uf*(E ztJhy`EgHrdvuv}qWi0#ts#|8U)witp+U0t^ezUpeueZ0iottX#sYI- zE@jLZ+hSQZ_3yBInq=APv16-QMozoTvW;PkX4yZk+vbeAr)x{gOK+Ww$K(7+tyZfY z$;W-P(HF*utRzKwzckL^X;`vL&>?=EvX#wmPCIwB#%nA|TL0Ee61Il5cIMMVVHm3PWz9v8G$Vm8fq_ zF4AMkXoGtUgK$BlBNmN!N($gqMNBxTP+JWLz$CuKceKK72Q)6+QOz~02;qUr05|-< z?x5T4wgQWi1B8MG5-B^=G|)<#KvJp%^$B+&5?;&I#CwazW;2Ggmup&9H$9_t@jqFbT+cnO29gxV%ZeKR=UwOwqW zt5@J-QbGH6F)S`+0-KBX(|xq0x9O%cJ{_4yKH1h^r6tp2PB3P0FpKTO_;s5S4v^GV(!`XqQ(WqO)pp;4cN^)Y6(V^ok%r64= z-goe2#~D(#cp|CziBSr0tvebmFEZY#7e;Hs{7SFaJ>dZz`u@T{!SvW}>j{E)1t8&*YB3I=Am1qT=_p4DWB)M z7F|b;z%$idta76K8!rZ;Ayv32I|L!v9JP(o@6Lwt!;j;$A|#rDk1~}!8L%SR2T{t{ z^?K-NMVM5S3Ss9K6P68aQpyR(gi-m%{${_Oeo(W8pj1gllybv*-TwL*VHb3wdff&v zZ6H=z{1_;`$bE>SR=NqXWuVV;hJDA#1LS)rzBQj}aHnW$q@2R5+L{S%KJs~_cB z`GHR2sPocFwGvbSS_6);DQvDx9)@_!8lEJm$Enihknd4VDaC5bczvvxMH0n?hiXiu zW(IEGqU~$0xdx=P;rm9a6V!F-W`nvet2e0Y(ng)RF8fpP)ED&vW|5Ri8cgQVV6g;t z&ba{2^IdOu?(O-N9DNPdFh+(!gT)E#if^SdtN?SS!tc0f8+AYFP}lIwrqkl1J+GrdbY6t* z&E}UkU2v_!f7e}inO18x-@Wq4?(S~R62#Fzjmmt@e0O)(#z8TL)goq* zM%(RnPw|M05yu*tVrOQABWyesIiM3~V+=EY0UYoWhKq$u=-OalazAR4THu3!t+&q% zT%Je;_Zyu4EQ~H$C@?gd<^53#fnTczrz;wK)5XNGwc z6qz>daIJEXkJu<-sA4AFa{O*&+TIQ~CK!xuz~&krsA+phAro@lk>E}Y40GwfC3|;s zria2lP8zV77x&>JyaD-WfR4l!DD!#Z z_Sqy!({YU^mlVp{CX+H5O~6G=;fj*|)^3qpO#iU{a)8e{Qh~^_1E}} z^I@kmZ%8s(b%M=}jSbvfCEQ?>g#rPM3ME@_B`CoHrJ^%CTh%0qKk{z&2eJA=w3~^-XOm7|(Kyd{9o3jkX3Box`IHsCdElo^J5Lq&E#bVBoWHP}m)3{=F zbya8-^Mr9uCJI=F7d{OSDhwhb`Whl@H^-6|cLb&Bu3fu0A5#+FLC$v(l2R%T%wFTKn2N%falYcXu2VU0Fs3NxuPkpHKpzKV zDFoZ$Qh-~5E9153LwJ{KMNk+wu8&;LbEE48V+s_t7@Dmut=Wco_J_$b zR$+T~cKng;`0cNHm7fS0_VYI%82r^pnjP`Pz`GRkm3ln^h`SWg(zi=FwqzrZS<1TY zQ3I*haQc|XFI>1#dNJ2gzQ8aR@zj~^+p!=*@Ml|4{Z>`9zPe4gs%iHzU%PPOLV5ST z4W$cQ2qN(I?PsQ9fiZhzNF{X;#hJE+c=RVlH075D&Y_Mzl7>N_!&zj2_}0?swLNDM z^gjF9&lcR{?wf>(?8t&~(iBm?Hn9vw?s2y;{=L=FC{s9-Y-gFKG2Z()uSGBBbV70! z>PMI)86U15rky0@Mq+wpeu^ZwV$zOlW8oQVqz~6R+m70U5`5PR2N@(T+S&{;pTzb-Bb|(3 z#523K4IM={j-M9Z$&+PSP2uP1oJB)m7m=}L>O&*-$ z^*7U(P3#H|Ik=4lu1J!kVaeFRn67VUs-zl%oGX(rV1)#IS7h$Ua@yh~qQO55CR4?`fK58!8cY0idQcR%{oTRV`M_)N!~Z9p3H{4kdys zG;_M=AC_be-A7^LLlHclkWsuZTM0?yv_tI8wA&`R6*v}3sqo>c#kAGF1*&q(rE)`Y(;?6fXiEV90dK zH33Xl!4-??RxzZDj#Y5Q1n^yV`35HZ^I%N3o{8f)CX9h;f~#nn;vy3~be$1piIab_ z^tXbm&YGiHC&Gm8>g7S;cxd*A4{ z(apKj2@GUc@ISW)#o{E(ybt8flFpPf-{Xn29E?@IfXXnoSYu*B(t^T~--4p>hV~Bs z-nMN~JIAJakrN)2%W} z?X7pe``rZlSd1Y*1^se5B0gt!P4e(|mtG7zl-HdkPOfozTV11J{MFn^eBW_WemQ#Y zESpxxMUY}%U$bpn%s;TXxvA7OnlA?(yAEe6A~I%3j565A&uTpzy#zflmVq7SX_8JF zd*yN@T;P2(q?&>Vt}saum?)Kcr?|O}MWSG7sEGT^#atD%?=Xm|!b6V6r|vemo={6D zE%xfBu@=#xtAS!R#CX+<-;}tk7!MhyaP^@`=s3kmf=g~uVzH8`TQA0lQ4%5*!E=gC z@x?=|Fdb}~*>u0J|}zbz&do+#D}QDbq+!W2{sR=jnJd+5D| zdV8-1OUI8Nf8O+&ue;%f8-m4qLUM@*mxvtz4O=-_OW}sHC-uo;8S4uUJ5#_X5JBUM z1VST#h~w-pYuCz8yb76VN7&ul+ndfl`_rHPv`^!-O)2M@LrBDImW;A6IOWHlc>R{Z z_UFD8B;yt(l=L3m4j)p<;V7@nRo7U`88DsXNP!2=bUJM>SqbwABaeU><>^x7>{Cw) z5-Nxr?m9_Y=geR+r_lvvXkrS7J$w*dhi-&(3gno1{YXn+uJ9fgG?_kkP_!X|?6K)q z7>J^i(${k+MLdqjWf^JFw6AVX5>mm?OKK5Q+5_Zi#lkG<0aOXm*Y-`#p9fC^CX$0Y zI|mcNV0z%tFI5=_FVG#{h;h`taw&6a^m{zc=NMB zU)AweECP=^s1cExsZ^+G{hnqESetg1*0TcysoLXUZMy_fWo`WIKyO`AjeRo+(T77# z8DX;Jt32_&fMEY;KMPdJ|Dz`W4(Qf^V+F{3&w$;Zuu%kUMSM`|JMy!l<4PA zCHVoFJqEs!&J8!}CyDkaSlmXX^bIF%8X<*;3O3end4m{83F8St>=$*Z4z!fL-?A)~ zx!AmN!t-#N9&rqVUFk^SWyZ}s2lko`D8NU3->29OJ#l%wFyB6srg9ON$;Y}9!Two* z%u#a5Yc@MGb^Mg}ui$;~P1N)iJGVp={g0{NMrjITsYjF@`B36S&C_X5&AHux?nhx=3sO2aR~UBvw$sl2{#itj^&p2XP0KuISrn>5A`8c0iko zY_6UaoPw#3peBm{ec|eu_rZFo7gF7CF##0s*pa4^BH4;uaY)f|KuXgcJK|u#8;|4N zO^K>;addYa$3=!?BjtvPqLFbWt{v5*LFhXM?ISf^a}0U2@C(CAmnZ8Oy77%+bjh-; z$oUw>+qa)-4F>IzcpS)oI{7l{|0$cNk5qP9Pq{|d`Le&A*@r_vR|?c7<4bSG=b!~< zG)|hP9S5F2$SnAuTJMjS0D0XVjW!J*8Yri2V9<8XHPgNlY>&L)P&2=2*S}St^cPCsJ+CBQrtwXEJ0h>nV$GzCn(@O{3&L0th>W4d$C1DK0 zD0f_~;=k+GKv^N9$Y&!-31ue>ZP=1!kna$5bBBJtUiZ`-CO4IzzpFQ?^va-(8bi*6z~r@Hacd;iHJ`&-yPPDxv{ zoEP+ADiQO5*Y`=HN3BT&RWlYLBN5Su6|sB)o!{^>Rc}6V>y)udLZL*;Vrk*l@rUT2 zDW!J4P~K7UJ#fmlW7yz(rCprs)3vJQ=WPp2k#EG<5PqrXc`8vIJ6HFQeFBs;a&N)k z%HeU-G;@r}x@_C!yi>MwdE2maWy@9#sgO6ovh(?(@9UZnQle!`}sIRrRAnRtM?#xUf4}LH`)9cMl z2R`HrGc(sJW)|bwnccfqx(f@HGQjPOQ!QRhXH5XJ zIX7E8Zgo$-x!wnX^k9dAb?t{(fDM~UJS1}mL-d!X`o6uETo0eYaf+kSXtWui)bnmK zsGx=iro;1vhe_0T#KBl^v*$j1YJsJ{tDfGuvnlrl_uGV*VTg)o0?nZ=I*wVdg7DLM z2e_rs)auNs6>8=cU}|SxxoB~2bou4v8{Ww^3gCLJg)?UsTAm9)H9mgm6s+OimzC|H z^p+v*>oBP9>T$oJA}iM)9pwjac#~>el8i>9UdOmzZ!`=^;u`HAd`cyods~G|6=-5L zKq4#U!bb3D#4xqK$h*{`{t~9p0tBtA1QQrAK7r;7%^+yuKyWbmGn?^%E~}WP+pm_o z0l=I(yK-NjU!2f9qfzIk$(jADrr58L!wFS16l1X5N^^UnOh9y%Q&$@(9?$gW%%_Dq zKGE(>&7s{WpQ`YTp-rCWc??60?ZD&^kwn=C>f2Vg(@biSzI+g%s?=Jp*8wA3t1q`C zmAVme|Nm!!YVP0v_~ZNcn<`kp{42w59}u6Xpj=VvboTZ3?psl zTeDyY@2A7&(s?#7Se9ibd51H(6)u24kSxRCQhbT9grrpEtx<4k^B&}SNB^ZcaVOF5 zWrh}Q^UOjqL3|vaLx3JcZ$|G&8Cpu5`bpG(M3f4uw&JD(q}w|xG`QtVnN$JM9xma9 z1EcaUWMc{PbxUqJ^X_S1AdvtdB&aJS#Br}KqzU{(7>(9cCtex5PM!=M|S zb49@*aS;GF#GGF%h6h{-q3i2L|JU!uJuKV)zMae2)~6>9KHjw8`Fs@R$HOqpM^PU7 zVR%s2t%3UVDx3?0Lm;>WSW)Ku8ekYJs$gu*`uMev{}0aP?C;w=Q5|pU!Y4l9*0uP@ z2cvmv$59c}BKjQ>g$_J(d%kX#r8RgZ!zl~ruX^_%&tzAJ@xR@6+ik?M$ZcB)B2D99 zG@xlGIwE;_#vlCP2L^!g1Ac)z-($%jZabVlBEUJx}SQ83$##`53du^t++=^qlomXFT$9Bgs zbZRZGl;CUBp@nj}FuSLeH-P6jXuYv7aITqNsigUQ{QOtG@|9EGm0Bm~7r-zai*uQY zj!!}LOLYZZ*T{gpz02d9UY(@;?sd>*HJj-wGLbYB*R`TE&7>Z;Xv@1bOcjyls-HA? z-;z%_23I%$yT~19EnNpPzi{N}xxYhBI$BX~mWWE>VYoGJ`SczE$Ir}p33T0>WpR0V z0IqPuId}BP!aNz@swfy#&oX{JRaJcRcQ@oi%L}a;F0YMg3oWBJ#%K?k0;6_QB9ek$ zv~e%04IU_-_dKp&_eL25j;V7D#u3$-)ufUpR z2K|k@@|>(6#nPFs(l}~n{?k(?=(h~_Q6OofmG<2BN6{P6ThY5lr!gSOF^3Ly$gM!f zQKHKvT>*_s6OBeh(^k)la5^voaKy1^Zj&%lD730 zqc>nBijaOE{*e%(Bt)rHl4V)XN(!Y)aaosTdG3LW#o}_YxLg!Mh~l&mLX-}aN+t1I zQWDwMiW4hyr;E8oeG;+*HTmRmQB#Gmj z=uR|%mK5~yrxDrQONLQjuNnHcJNbs7x3aS0(+OFgp#F+1CqKf7EHk`)Ld$waG2CZ( zcF0-QW@*xiO(NiP1^V&o#jc@Tj0Kq;$eLxgEDx+t>6~eXUN@1qKW(-muoMpE4#$Un z=>HJf3XES2$xd`62b+Vqefdz^tZqU0kP#-i$GF}1YxwcCm!uu6M|<5syoq0?xNFxg z!?MJw5JP^)tC=Tec1%&mmiWxh_^n|2+4O$aK9ny(yjBR)Z^txEb-m}7N_O*=J9zHE z)=O!P?9RfbeQ8tsgS(=2Sid0X41I^>wJn)Jn37GM3?l4&)TI>uu#88L*S4{*)3kBC z1LWB6ICP+!!XK4|Qxc0`6wEgcFiVFQ1nf_SAXcgRA#jS~~56lT5%>)EX`lRBO%W*L2e!~0e{qjM_#U`t052i)R{e+1_z-?AEaR)`#76uXDo&tC zhjGZcPR^h^v;`{uYOKKw+NtjosB-0T2oP>ZX|vZJubI}vV>kbmq=u0eIZ(Wl>tLF4 z0de^1vp?`rMSANm_3ILuZm~)e1F*)s|G35%?~-Ym&z`|QMnk+Bz^7&Ye)t07XuHqt zoNKQoT;@>IrD-Kztgn{lx5Gr1Hd3Ck0l5{z#s&0vCuV6VB<1qo(tR&1E+*BA5ud0t z+v*^7Z3`*RxJML@FM8zE`uaK-)cVeb%LHdyEP}xWoo=d=FltSun5gKGzrB)qp?XEJ-0#5D?{)7@7HjHZ|AJ@vY-EX$dHsCN-&+h5_G zyvGQ*OSh$LZEbxuMJYI5+D732b6N0(zF_#P=O(W?=5w`QK%+Kvdm>8U!t=hsfX}tZzJU^NJP`&vT5ttx9a>?bI|dii%rdw}HA0jv7{Y8TPlUA?pR4IV z0r(86l_o_Crb;u}U(C@%5iMS4X3Zo4?z#m)l?ZG94EA)Q>!Ugc;#r71zQIl>vy_TxD=wtss2%`v&Rp+-x?h<5yIYn;x)(aJ)vM=5bSQ7!Bpqp_ z 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 S`O1A00000000000000000000 z00001HUcCBAO>IqfgAvW9Lm2G%TNV~eFq=~i4zf3wI2eYk+N|9e*gDQd+!}v8jUQE zEX&d)@q!?$NtP#COIg-qTqyYw=e4{kxRkyvy2R<}7XYY0oDw?^xRU?h>$LlXq|rzt z0WK)%V=#d@(1-Pv0ESL=Vh{O?)w|IhgzKZN7Q8OaGpWW1TrGEshnvVNTGXQY^dsG9|GjhVX32XKmtuFf8Ktyz@y_vrq zK!Ap(!86mnrHyPAqb!e zn% zb%`S^VHyIEuoDIV7=~d)bMsD5W`dln_FSSmijZ zN-V09GsYOlBAq`tetdNN`0hh zzLk{~w7&S2g(B8pq|;yn%maulSL$z`L?%+FI`zfvrKbyd!xui)X(E$6%YV_Aa`Pra zvh31Jvy6~Uo2BfVoSRd#Znx{se#z5tG2g#`2b7sCyL89?{rO^OS@0N!r_2k6=(?SPv7+O;I1D^Sc>ys3hOyf46D>6H z0pD@F{}~%$KLDn2>I+ZlRF_gwrAw)jJXcaBd6qZgG*09|WqBrq%2g(W@+nn9`BbNP zbUYsW1Ua|l5yuHQKO$SY-ud8oJoX84ZpkB#6L5Y+nws9hlKA6}uD9e7&I89eA}!9b z0^*N5x?Ur1*&G3g%&Y^7Uxz;I1;Fn0u_7&uajb=(aOmJjUWw|J^y~3clyKB-sCs~q z|9JrGN9z)sSi&{{H;GqH2%s;RJxYAe8bwNBJUD z3&Qt$RF6ZI$V577PoAX$D4(Z#RF5N>3U0f0iXX%tlh(#2|Eqf#}%tz?|W(%PCbw^6)RmS=fQVLY+C zyxeLno1B{_3(h_=P0r0<6~zz=GRBMfejl;lpD!zhS1vCvw>q8HvT2(95U|l9Zknda z7_XseLCzTV`|}9%{XU;!L7pf!!({-t>QPqW+9wjTlsz(uV@;<@>C{oa@I^QbtTl+J z?s-b5p&A}dl@qip1&1D^eCxXzGuv(RUGp8+on~1ziG+_+B@|N+3qo0yHln>W-p5|T z5?!}5|1PuLHW_>OR!*5W;*168i>NBmkS52r5p68&F{T7@c)1UtI>L_s>a;(uHQqZ4m8}XPR5l3B29O^L z;R~JWg5sY*CUPHRtUbN2PtdlJF>Bf&bjlFOo4mKpu_H<}TQ^&R8`R*o-Qi|K)6N$kPPOph`bH(As9j4Z5wHKVG!TFi{_RU7o?7n?x zp1E(|Y!uDz+jk}aG{NG&A&$U+2)4l)02rsSiNSB#nELj<(nKaQL~r1QYM?@}ip$Yx zG^&<*yp7oAJzULQlxm3M8W8GzgCH1UoA-)4WKN`73xXghD#2qZ7SwCFhO2N4z>U+G zC=d>#s8U>ZU#Lc2)u9??iJm~IItl(Th;qf#f=njz8|vI`?xKt4EUvsS!Q4d`&9!vB z1F`yWwTV`DoV{&|1Xw}<``|RV2A&V#(wrKN#1J4xp(vHP;L^}NrFv$9fc48KaYPYm zP8pKAhGbI|MVOlXD@hVfOE}Rq!gB>a$9c?qu8q&Sn6I9XpSbC!o2G7>s$#=f^csfI z@b*%=_qgFj9M-J&wVb1Wh(yzpYSngKJLVjpWxG8db6!0k7yC#UAv!_BSoCT*^WgX1 zgcLY}X^3G5I4<*L;gl@l>2AQmI6y%G34;k0HF? z_(ASVJrAAwB2Ba0c*C`KxuW0gB6hodEOSy-6h%=d7RB8;!fv-;TBGWNwmmbmY17P% zZJ$k@k9M<5NOx+gOGvj#x}7d*I=Y5V;3QThUZLy-I<^(%OA9f4-qG$(b2sUB3F&sp z>0Ls)0J=>6+Gbz}oC}YGC3rqSo(a$CTlPq`h=?kmlnol58F)HnDOHh*l#iCA(WW_F zunhG3j(WmRF|Q1ubj`uQJfi_$e4T>2UaLUllKx@_XT7+^K8$f3R}xwxJbQ zJ^I~OdM)a{D!)w^v4ht-?qM6wSWt@rj|%J05WufO2&VzKVHi3ntj*vi6FE?!-sjQM zMQfQjFXNNJ9`$#}zVK8SU{RG=pzC&qj14=ki%vM3&Z$ZWQ&`}z@EGMov)wj_+%UX? zZd(oXbEo!fX!D@2MJ(e4itR7}aOYYVDr1GU=9AzQ=5fO?bX2GuSo_@e(XfgGuJNNN z!fY&X1j^-R%^=HX8EJ6CwWfG}Vs;m=GV#NNnNJXWTN;VwFFQf1Sx;YV0K_+7o~=0#(O@d$=UJY~XbXzHWV&JTWU(5I z(HGH_>zcaNwydV6ccWMBjID)@~mc4(=DsL#rKiS%^%z?&j>7h z2)k+Yz6ML!34oazR7GIW@j)*E-66DRZZTC^j*r*OyQpc>yG)JRM;YU?;D#4xTW0a7 zO_AHJv0;oIXq-pz8;@glOIBjLfBP2SxW~`|nDm?pPt1HYVs|Z7zUaRm?&Q{((y_() zMd1F03`<;v=~&DxUnu1u#DlX4wYh0b*5df_^&&dsgLK`n54sP9_Pj6d%L=g#WcnX$@Y8D^OuHAhAYSDG=! zFl-^dP3p|uZ|>j_zmbelWnKK zY_=`4=ZRq!eRZfN_?`Jm=gV1a2Xq z!EhDT1puEB5qu8t)&s8=FhAqxJobX=IObuTh+D!om7h6j+QQ;Q{ICl+cV>n;bN28T zlB(e4HwMks2~Aan5Q4G87!yJWRn-!!&B393K0h>+GR=l1Y?Bl5Q7RxYIs54-C*r2C ztp;7^a884RiQTzGvM=ZjO3p|j1k+SiIF3+NjR_&-Op>n1=b?f1zg1SpHBPS`a3I<^ zlZ$#kvxLaP$nJ1W8aFU=;sa8uZZ@fJG-5aF<=lzxXhw6wWGMd}BQceMnSvXjW`Q%qw?-cn9i7& zj5Uc#FVJ9N5n7rJ?u$%UiZlq`5<_CN?}ws5A&9w}oF*H#>yn@rFcvh2fJR((-$lxI zEXks#Lm4MtvUN>Wg=Omor>#^<%M$j8Ed&5}{DU&a3`MalTX1if=FZJ#=guWcB!^1j^y4_^azjz9wF^hD9&_hr7o}Vdolu8w z(0Y0UX&~4G!iBwn+scfmGex&lrPI<`e787N{B9~zppDaT_FHm5{r~%K(7HafZ2~SN z3L!SI1Nz!g-ARD{7iJgXOp;{pNp&n#KojH8w7+3nz>qas=rK=WQ`5ULcDi?sJ`!g4 z2E~q8G<0Ntk&gCdh??BgoK9da{Ac^$(hS{!@i@F~*c%5;t$WQ9Vm(Qh2%h!B%eImHdQCQ1crO=O^02Qe(PqUzoeS)s@jvl}zr~+|X;aeHsquE^N%w<9N=U zID3sU>6otDwy@OP!jId%iPGt+VRM7H=@|R?zQVcl00Y-qi;lDw!esYx(l_GI@)CBy z9yrv-rM{7^l4mN%Yr5|R%xzJdS-flXVst4rzrgi;K6KI$XJU?cEXQiFNt&6Rao;bb z5hseriQ<`K(PK%Xq_YK<=X8v=jr%rE36lV{{(t>%6^$N%4jV(54?i+(BJeUU3z+Za z+>AfsdO_B}@YG_1F+G#c#bT)-<}0h~rPzaq9(w3ukAJn>Zo6$8D?jzr>@80{HGAE* zZQFKVMNj?u>#xkR*sqq^W#V7Kx~4@Z9ewoCN6+7T@4fdv{hfD8d+(j^gV2Xz5aRJ0 zO!J0#{QU^_{_H*?gBo_nQ3!!-^nmQwMG0xwS-94X4P{Eh-mjYIZpyC(wIJo^oMdha zgB0_wK}J;9Eu?cxs)XIf>ghC5I$a;zE&mIPTGC)Kg;-28S1id4mR9+kfevV3{J|DvtbC{|SG1F9%iTJ?3tpZYUvJCgmSN;QV9SLgCQ}nm8OnE0( zj@_ju)a})8wYA!F`Z!bBbH;!%Zal_Seh|Nke{7DLmsthtb8&*b!amBr%zn-O*XcUH z$LsNT0i?(Q0RVt`V4$9yge)OXm3NQek%?hB&Wu&z7!76Y&FDzuO~%9uj4&2lJj5ih z5I@l5yHg6qKq?1NA^*e>_K0OWC~%00;SePgtDYDQ8|ZaL$9m;{#>8PX$yg{TCo>7u zl|QOe5)Ne#XiXl!r8&JW?4CT`o}7wgeqyQICG13U&55mExV3fAR7;-N8qf9Q*02}J zZrDA3OLJPbC&G^GwIbQ-hHZrR+93Wv0&d+o3zgTOD8ys@h9m8&wpOW46^lPA2+ zU6-{&wNPHVOMTIbTo-QbHly}2Z^l+(ZfKySVm*hB#9ncP>q?w}NvcDl_V$;9FQAO2ZO2z2d2*wz z=%R@TZH%LhEflWrWJvDCuEbq@3K1f7(L)_Y6tS_V_~wlkxMAH&hsJGVPe6r&eyt3d S2VsmQO06}ypn7Xr@LvO5t4+KB literal 0 HcmV?d00001 diff --git a/build/lib/exo/tinychat/static/fonts.googleapis.com/css2 b/build/lib/exo/tinychat/static/fonts.googleapis.com/css2 new file mode 100644 index 00000000..82f55e83 --- /dev/null +++ b/build/lib/exo/tinychat/static/fonts.googleapis.com/css2 @@ -0,0 +1,7 @@ +@font-face { + font-family: 'Megrim'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/megrim/v16/46kulbz5WjvLqJZlbQ.ttf) format('truetype'); +} diff --git a/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js b/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js new file mode 100644 index 00000000..5d699ae6 --- /dev/null +++ b/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js @@ -0,0 +1,1213 @@ +/*! + Highlight.js v11.9.0 (git: f47103d4f1) + (c) 2006-2023 undefined and other contributors + License: BSD-3-Clause + */ +var hljs=function(){"use strict";function e(n){ +return n instanceof Map?n.clear=n.delete=n.set=()=>{ +throw Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=()=>{ +throw Error("set is read-only") +}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach((t=>{ +const a=n[t],i=typeof a;"object"!==i&&"function"!==i||Object.isFrozen(a)||e(a) +})),n}class n{constructor(e){ +void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} +ignoreMatch(){this.isMatchIgnored=!0}}function t(e){ +return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") +}function a(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n] +;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t}const i=e=>!!e.scope +;class r{constructor(e,n){ +this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){ +this.buffer+=t(e)}openNode(e){if(!i(e))return;const n=((e,{prefix:n})=>{ +if(e.startsWith("language:"))return e.replace("language:","language-") +;if(e.includes(".")){const t=e.split(".") +;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ") +}return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)} +closeNode(e){i(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ +this.buffer+=``}}const s=(e={})=>{const n={children:[]} +;return Object.assign(n,e),n};class o{constructor(){ +this.rootNode=s(),this.stack=[this.rootNode]}get top(){ +return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ +this.top.children.push(e)}openNode(e){const n=s({scope:e}) +;this.add(n),this.stack.push(n)}closeNode(){ +if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ +for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} +walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){ +return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n), +n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){ +"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ +o._collapse(e)})))}}class l extends o{constructor(e){super(),this.options=e} +addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){ +this.closeNode()}__addSublanguage(e,n){const t=e.root +;n&&(t.scope="language:"+n),this.add(t)}toHTML(){ +return new r(this,this.options).value()}finalize(){ +return this.closeAllNodes(),!0}}function c(e){ +return e?"string"==typeof e?e:e.source:null}function d(e){return b("(?=",e,")")} +function g(e){return b("(?:",e,")*")}function u(e){return b("(?:",e,")?")} +function b(...e){return e.map((e=>c(e))).join("")}function m(...e){const n=(e=>{ +const n=e[e.length-1] +;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} +})(e);return"("+(n.capture?"":"?:")+e.map((e=>c(e))).join("|")+")"} +function p(e){return RegExp(e.toString()+"|").exec("").length-1} +const _=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ +;function h(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t +;let a=c(e),i="";for(;a.length>0;){const e=_.exec(a);if(!e){i+=a;break} +i+=a.substring(0,e.index), +a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0], +"("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)} +const f="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",N="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",w="\\b(0b[01]+)",v={ +begin:"\\\\[\\s\\S]",relevance:0},O={scope:"string",begin:"'",end:"'", +illegal:"\\n",contains:[v]},k={scope:"string",begin:'"',end:'"',illegal:"\\n", +contains:[v]},x=(e,n,t={})=>{const i=a({scope:"comment",begin:e,end:n, +contains:[]},t);i.contains.push({scope:"doctag", +begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", +end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) +;const r=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) +;return i.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i +},M=x("//","$"),S=x("/\\*","\\*/"),A=x("#","$");var C=Object.freeze({ +__proto__:null,APOS_STRING_MODE:O,BACKSLASH_ESCAPE:v,BINARY_NUMBER_MODE:{ +scope:"number",begin:w,relevance:0},BINARY_NUMBER_RE:w,COMMENT:x, +C_BLOCK_COMMENT_MODE:S,C_LINE_COMMENT_MODE:M,C_NUMBER_MODE:{scope:"number", +begin:N,relevance:0},C_NUMBER_RE:N,END_SAME_AS_BEGIN:e=>Object.assign(e,{ +"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{ +n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:A,IDENT_RE:f, +MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+E,relevance:0}, +NUMBER_MODE:{scope:"number",begin:y,relevance:0},NUMBER_RE:y, +PHRASAL_WORDS_MODE:{ +begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ +},QUOTE_STRING_MODE:k,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/, +end:/\/[gimuy]*/,contains:[v,{begin:/\[/,end:/\]/,relevance:0,contains:[v]}]}, +RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", +SHEBANG:(e={})=>{const n=/^#![ ]*\// +;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n, +end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)}, +TITLE_MODE:{scope:"title",begin:f,relevance:0},UNDERSCORE_IDENT_RE:E, +UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0}});function T(e,n){ +"."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){ +void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){ +n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", +e.__beforeBegin=T,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, +void 0===e.relevance&&(e.relevance=0))}function I(e,n){ +Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function L(e,n){ +if(e.match){ +if(e.begin||e.end)throw Error("begin & end are not supported with match") +;e.begin=e.match,delete e.match}}function B(e,n){ +void 0===e.relevance&&(e.relevance=1)}const $=(e,n)=>{if(!e.beforeMatch)return +;if(e.starts)throw Error("beforeMatch cannot be used with starts") +;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n] +})),e.keywords=t.keywords,e.begin=b(t.beforeMatch,d(t.begin)),e.starts={ +relevance:0,contains:[Object.assign(t,{endsParent:!0})] +},e.relevance=0,delete t.beforeMatch +},z=["of","and","for","in","not","or","if","then","parent","list","value"],F="keyword" +;function U(e,n,t=F){const a=Object.create(null) +;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{ +Object.assign(a,U(e[t],n,t))})),a;function i(e,t){ +n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|") +;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){ +return n?Number(n):(e=>z.includes(e.toLowerCase()))(e)?0:1}const P={},K=e=>{ +console.error(e)},H=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{ +P[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),P[`${e}/${n}`]=!0) +},G=Error();function Z(e,n,{key:t}){let a=0;const i=e[t],r={},s={} +;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(n[e-1]) +;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function W(e){(e=>{ +e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, +delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ +_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope +}),(e=>{if(Array.isArray(e.begin)){ +if(e.skip||e.excludeBegin||e.returnBegin)throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), +G +;if("object"!=typeof e.beginScope||null===e.beginScope)throw K("beginScope must be object"), +G;Z(e,e.begin,{key:"beginScope"}),e.begin=h(e.begin,{joinWith:""})}})(e),(e=>{ +if(Array.isArray(e.end)){ +if(e.skip||e.excludeEnd||e.returnEnd)throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"), +G +;if("object"!=typeof e.endScope||null===e.endScope)throw K("endScope must be object"), +G;Z(e,e.end,{key:"endScope"}),e.end=h(e.end,{joinWith:""})}})(e)}function Q(e){ +function n(n,t){ +return RegExp(c(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":"")) +}class t{constructor(){ +this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} +addRule(e,n){ +n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]), +this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) +;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(h(e,{joinWith:"|" +}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex +;const n=this.matcherRe.exec(e);if(!n)return null +;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t] +;return n.splice(0,t),Object.assign(n,a)}}class i{constructor(){ +this.rules=[],this.multiRegexes=[], +this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ +if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t +;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))), +n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){ +return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){ +this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){ +const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex +;let t=n.exec(e) +;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{ +const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)} +return t&&(this.regexIndex+=t.position+1, +this.regexIndex===this.count&&this.considerAll()),t}} +if(e.compilerExtensions||(e.compilerExtensions=[]), +e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") +;return e.classNameAliases=a(e.classNameAliases||{}),function t(r,s){const o=r +;if(r.isCompiled)return o +;[R,L,W,$].forEach((e=>e(r,s))),e.compilerExtensions.forEach((e=>e(r,s))), +r.__beforeBegin=null,[D,I,B].forEach((e=>e(r,s))),r.isCompiled=!0;let l=null +;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords), +l=r.keywords.$pattern, +delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=U(r.keywords,e.case_insensitive)), +o.keywordPatternRe=n(l,!0), +s&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r.end=/\B|\b/), +r.end&&(o.endRe=n(o.end)), +o.terminatorEnd=c(o.end)||"",r.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)), +r.illegal&&(o.illegalRe=n(r.illegal)), +r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>a(e,{ +variants:null},n)))),e.cachedVariants?e.cachedVariants:X(e)?a(e,{ +starts:e.starts?a(e.starts):null +}):Object.isFrozen(e)?a(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o) +})),r.starts&&t(r.starts,s),o.matcher=(e=>{const n=new i +;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin" +}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end" +}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function X(e){ +return!!e&&(e.endsWithParent||X(e.starts))}class V extends Error{ +constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}} +const J=t,Y=a,ee=Symbol("nomatch"),ne=t=>{ +const a=Object.create(null),i=Object.create(null),r=[];let s=!0 +;const o="Could not find the language '{}', did you forget to load/include a language module?",c={ +disableAutodetect:!0,name:"Plain text",contains:[]};let p={ +ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, +languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", +cssSelector:"pre code",languages:null,__emitter:l};function _(e){ +return p.noHighlightRe.test(e)}function h(e,n,t){let a="",i="" +;"object"==typeof n?(a=e, +t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."), +q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), +i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};x("before:highlight",r) +;const s=r.result?r.result:f(r.language,r.code,t) +;return s.code=r.code,x("after:highlight",s),s}function f(e,t,i,r){ +const l=Object.create(null);function c(){if(!x.keywords)return void S.addText(A) +;let e=0;x.keywordPatternRe.lastIndex=0;let n=x.keywordPatternRe.exec(A),t="" +;for(;n;){t+=A.substring(e,n.index) +;const i=w.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,x.keywords[a]);if(r){ +const[e,a]=r +;if(S.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(C+=a),e.startsWith("_"))t+=n[0];else{ +const t=w.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0] +;e=x.keywordPatternRe.lastIndex,n=x.keywordPatternRe.exec(A)}var a +;t+=A.substring(e),S.addText(t)}function d(){null!=x.subLanguage?(()=>{ +if(""===A)return;let e=null;if("string"==typeof x.subLanguage){ +if(!a[x.subLanguage])return void S.addText(A) +;e=f(x.subLanguage,A,!0,M[x.subLanguage]),M[x.subLanguage]=e._top +}else e=E(A,x.subLanguage.length?x.subLanguage:null) +;x.relevance>0&&(C+=e.relevance),S.__addSublanguage(e._emitter,e.language) +})():c(),A=""}function g(e,n){ +""!==e&&(S.startScope(n),S.addText(e),S.endScope())}function u(e,n){let t=1 +;const a=n.length-1;for(;t<=a;){if(!e._emit[t]){t++;continue} +const a=w.classNameAliases[e[t]]||e[t],i=n[t];a?g(i,a):(A=i,c(),A=""),t++}} +function b(e,n){ +return e.scope&&"string"==typeof e.scope&&S.openNode(w.classNameAliases[e.scope]||e.scope), +e.beginScope&&(e.beginScope._wrap?(g(A,w.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), +A=""):e.beginScope._multi&&(u(e.beginScope,n),A="")),x=Object.create(e,{parent:{ +value:x}}),x}function m(e,t,a){let i=((e,n)=>{const t=e&&e.exec(n) +;return t&&0===t.index})(e.endRe,a);if(i){if(e["on:end"]){const a=new n(e) +;e["on:end"](t,a),a.isMatchIgnored&&(i=!1)}if(i){ +for(;e.endsParent&&e.parent;)e=e.parent;return e}} +if(e.endsWithParent)return m(e.parent,t,a)}function _(e){ +return 0===x.matcher.regexIndex?(A+=e[0],1):(D=!0,0)}function h(e){ +const n=e[0],a=t.substring(e.index),i=m(x,e,a);if(!i)return ee;const r=x +;x.endScope&&x.endScope._wrap?(d(), +g(n,x.endScope._wrap)):x.endScope&&x.endScope._multi?(d(), +u(x.endScope,e)):r.skip?A+=n:(r.returnEnd||r.excludeEnd||(A+=n), +d(),r.excludeEnd&&(A=n));do{ +x.scope&&S.closeNode(),x.skip||x.subLanguage||(C+=x.relevance),x=x.parent +}while(x!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:n.length} +let y={};function N(a,r){const o=r&&r[0];if(A+=a,null==o)return d(),0 +;if("begin"===y.type&&"end"===r.type&&y.index===r.index&&""===o){ +if(A+=t.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`) +;throw n.languageName=e,n.badRule=y.rule,n}return 1} +if(y=r,"begin"===r.type)return(e=>{ +const t=e[0],a=e.rule,i=new n(a),r=[a.__beforeBegin,a["on:begin"]] +;for(const n of r)if(n&&(n(e,i),i.isMatchIgnored))return _(t) +;return a.skip?A+=t:(a.excludeBegin&&(A+=t), +d(),a.returnBegin||a.excludeBegin||(A=t)),b(a,e),a.returnBegin?0:t.length})(r) +;if("illegal"===r.type&&!i){ +const e=Error('Illegal lexeme "'+o+'" for mode "'+(x.scope||"")+'"') +;throw e.mode=x,e}if("end"===r.type){const e=h(r);if(e!==ee)return e} +if("illegal"===r.type&&""===o)return 1 +;if(R>1e5&&R>3*r.index)throw Error("potential infinite loop, way more iterations than matches") +;return A+=o,o.length}const w=v(e) +;if(!w)throw K(o.replace("{}",e)),Error('Unknown language: "'+e+'"') +;const O=Q(w);let k="",x=r||O;const M={},S=new p.__emitter(p);(()=>{const e=[] +;for(let n=x;n!==w;n=n.parent)n.scope&&e.unshift(n.scope) +;e.forEach((e=>S.openNode(e)))})();let A="",C=0,T=0,R=0,D=!1;try{ +if(w.__emitTokens)w.__emitTokens(t,S);else{for(x.matcher.considerAll();;){ +R++,D?D=!1:x.matcher.considerAll(),x.matcher.lastIndex=T +;const e=x.matcher.exec(t);if(!e)break;const n=N(t.substring(T,e.index),e) +;T=e.index+n}N(t.substring(T))}return S.finalize(),k=S.toHTML(),{language:e, +value:k,relevance:C,illegal:!1,_emitter:S,_top:x}}catch(n){ +if(n.message&&n.message.includes("Illegal"))return{language:e,value:J(t), +illegal:!0,relevance:0,_illegalBy:{message:n.message,index:T, +context:t.slice(T-100,T+100),mode:n.mode,resultSoFar:k},_emitter:S};if(s)return{ +language:e,value:J(t),illegal:!1,relevance:0,errorRaised:n,_emitter:S,_top:x} +;throw n}}function E(e,n){n=n||p.languages||Object.keys(a);const t=(e=>{ +const n={value:J(e),illegal:!1,relevance:0,_top:c,_emitter:new p.__emitter(p)} +;return n._emitter.addText(e),n})(e),i=n.filter(v).filter(k).map((n=>f(n,e,!1))) +;i.unshift(t);const r=i.sort(((e,n)=>{ +if(e.relevance!==n.relevance)return n.relevance-e.relevance +;if(e.language&&n.language){if(v(e.language).supersetOf===n.language)return 1 +;if(v(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,l=s +;return l.secondBest=o,l}function y(e){let n=null;const t=(e=>{ +let n=e.className+" ";n+=e.parentNode?e.parentNode.className:"" +;const t=p.languageDetectRe.exec(n);if(t){const n=v(t[1]) +;return n||(H(o.replace("{}",t[1])), +H("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"} +return n.split(/\s+/).find((e=>_(e)||v(e)))})(e);if(_(t))return +;if(x("before:highlightElement",{el:e,language:t +}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e) +;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), +console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), +console.warn("The element with unescaped HTML:"), +console.warn(e)),p.throwUnescapedHTML))throw new V("One of your code blocks includes unescaped HTML.",e.innerHTML) +;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a) +;e.innerHTML=r.value,e.dataset.highlighted="yes",((e,n,t)=>{const a=n&&i[n]||t +;e.classList.add("hljs"),e.classList.add("language-"+a) +})(e,t,r.language),e.result={language:r.language,re:r.relevance, +relevance:r.relevance},r.secondBest&&(e.secondBest={ +language:r.secondBest.language,relevance:r.secondBest.relevance +}),x("after:highlightElement",{el:e,result:r,text:a})}let N=!1;function w(){ +"loading"!==document.readyState?document.querySelectorAll(p.cssSelector).forEach(y):N=!0 +}function v(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]} +function O(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ +i[e.toLowerCase()]=n}))}function k(e){const n=v(e) +;return n&&!n.disableAutodetect}function x(e,n){const t=e;r.forEach((e=>{ +e[t]&&e[t](n)}))} +"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ +N&&w()}),!1),Object.assign(t,{highlight:h,highlightAuto:E,highlightAll:w, +highlightElement:y, +highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"), +q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=Y(p,e)}, +initHighlighting:()=>{ +w(),q("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, +initHighlightingOnLoad:()=>{ +w(),q("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") +},registerLanguage:(e,n)=>{let i=null;try{i=n(t)}catch(n){ +if(K("Language definition for '{}' could not be registered.".replace("{}",e)), +!s)throw n;K(n),i=c} +i.name||(i.name=e),a[e]=i,i.rawDefinition=n.bind(null,t),i.aliases&&O(i.aliases,{ +languageName:e})},unregisterLanguage:e=>{delete a[e] +;for(const n of Object.keys(i))i[n]===e&&delete i[n]}, +listLanguages:()=>Object.keys(a),getLanguage:v,registerAliases:O, +autoDetection:k,inherit:Y,addPlugin:e=>{(e=>{ +e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{ +e["before:highlightBlock"](Object.assign({block:n.el},n)) +}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{ +e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)}, +removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{ +s=!1},t.safeMode=()=>{s=!0},t.versionString="11.9.0",t.regex={concat:b, +lookahead:d,either:m,optional:u,anyNumberOfTimes:g} +;for(const n in C)"object"==typeof C[n]&&e(C[n]);return Object.assign(t,C),t +},te=ne({});te.newInstance=()=>ne({});var ae=te;const ie=e=>({IMPORTANT:{ +scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{ +scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/}, +FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/}, +ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/} +}),re=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],se=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],oe=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],le=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ce=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),de=oe.concat(le) +;var ge="[0-9](_*[0-9])*",ue=`\\.(${ge})`,be="[0-9a-fA-F](_*[0-9a-fA-F])*",me={ +className:"number",variants:[{ +begin:`(\\b(${ge})((${ue})|\\.)?|(${ue}))[eE][+-]?(${ge})[fFdD]?\\b`},{ +begin:`\\b(${ge})((${ue})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${ue})[fFdD]?\\b`},{begin:`\\b(${ge})[fFdD]\\b`},{ +begin:`\\b0[xX]((${be})\\.?|(${be})?\\.(${be}))[pP][+-]?(${ge})[fFdD]?\\b`},{ +begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${be})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};function pe(e,n,t){return-1===t?"":e.replace(n,(a=>pe(e,n,t-1)))} +const _e="[A-Za-z$_][0-9A-Za-z$_]*",he=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],fe=["true","false","null","undefined","NaN","Infinity"],Ee=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ye=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ne=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],we=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],ve=[].concat(Ne,Ee,ye) +;function Oe(e){const n=e.regex,t=_e,a={begin:/<[A-Za-z0-9\\._:-]+/, +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ +const t=e[0].length+e.index,a=e.input[t] +;if("<"===a||","===a)return void n.ignoreMatch();let i +;">"===a&&(((e,{after:n})=>{const t="",M={ +match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(x)], +keywords:"async",className:{1:"keyword",3:"title.function"},contains:[f]} +;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{ +PARAMS_CONTAINS:h,CLASS_REFERENCE:y},illegal:/#(?![$_A-z])/, +contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ +label:"use_strict",className:"meta",relevance:10, +begin:/^\s*['"]use (strict|asm)['"]/ +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,m,{match:/\$\d+/},l,y,{ +className:"attr",begin:t+n.lookahead(":"),relevance:0},M,{ +begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{ +className:"function",begin:x,returnBegin:!0,end:"\\s*=>",contains:[{ +className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{ +className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,keywords:i,contains:h}]}]},{begin:/,/,relevance:0},{match:/\s+/, +relevance:0},{variants:[{begin:"<>",end:""},{ +match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin, +"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{ +begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},N,{ +beginKeywords:"while if switch catch for"},{ +begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,label:"func.def",contains:[f,e.inherit(e.TITLE_MODE,{begin:t, +className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+t, +relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, +contains:[f]},w,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},E,k,{match:/\$[(.]/}]}} +const ke=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),xe=["Protocol","Type"].map(ke),Me=["init","self"].map(ke),Se=["Any","Self"],Ae=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ce=["false","nil","true"],Te=["assignment","associativity","higherThan","left","lowerThan","none","right"],Re=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],De=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Ie=m(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Le=m(Ie,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Be=b(Ie,Le,"*"),$e=m(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),ze=m($e,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Fe=b($e,ze,"*"),Ue=b(/[A-Z]/,ze,"*"),je=["attached","autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,Fe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],Pe=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] +;var Ke=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={ +begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]} +;Object.assign(t,{className:"variable",variants:[{ +begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={ +className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={ +begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, +end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(s);const o={begin:/\$?\(\(/, +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] +},l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 +}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, +contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ +name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, +keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"], +literal:["true","false"], +built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] +},contains:[l,e.SHEBANG(),c,o,e.HASH_COMMENT_MODE,r,{match:/(\/[a-z._-]+)+/},s,{ +match:/\\"/},{className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}}, +grmr_c:e=>{const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={ +className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ +match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{ +className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={ +className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0 +},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={ +keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], +type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"], +literal:"true false NULL", +built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" +},b=[c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],m={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:b.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:b.concat(["self"]),relevance:0}]),relevance:0},p={ +begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{ +begin:g,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})], +relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/, +keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/, +end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s] +}]},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u, +disableAutodetect:!0,illegal:"=]/,contains:[{ +beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c, +strings:o,keywords:u}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{ +contains:[{begin:/\\\n/}] +}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={ +className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{ +className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={ +className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0 +},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={ +type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], +keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"], +literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"], +_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] +},b={className:"function.dispatch",relevance:0,keywords:{ +_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] +}, +begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/)) +},m=[b,c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function", +begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{ +begin:g,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{ +begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{ +className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0, +contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]}] +},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++", +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{ +match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], +className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={ +keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]), +built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], +literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{ +begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{ +begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] +},r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/, +keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/, +end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ +},e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{ +begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/, +contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]}) +;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE], +o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{ +illegal:/\n/})];const g={variants:[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},u={begin:"<",end:">",contains:[{beginKeywords:"in out"},t] +},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={ +begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], +keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, +contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ +begin:"\x3c!--|--\x3e"},{begin:""}]}] +}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", +end:"$",keywords:{ +keyword:"if else elif endif define undef warning error line region endregion pragma checksum" +}},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, +illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" +},t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", +relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", +begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ +className:"string",begin:/"/,end:/"/}]},{ +beginKeywords:"new return throw await else",relevance:0},{className:"function", +begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, +end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ +beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", +relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, +contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params", +begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, +contains:[g,a,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{ +const n=e.regex,t=ie(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{ +name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{ +keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"}, +contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/ +},t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0 +},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 +},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ +begin:":("+oe.join("|")+")"},{begin:":(:)?("+le.join("|")+")"}] +},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ce.join("|")+")\\b"},{ +begin:/:/,end:/[;}{]/, +contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{ +begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" +},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0, +excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]", +relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/ +},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:se.join(" ")},contains:[{ +begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{ +className:"selector-tag",begin:"\\b("+re.join("|")+")\\b"}]}},grmr_diff:e=>{ +const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{ +className:"meta",relevance:10, +match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) +},{className:"comment",variants:[{ +begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/), +end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{ +className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, +end:/$/}]}},grmr_go:e=>{const n={ +keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"], +type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"], +literal:["true","false","iota","nil"], +built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"] +};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{const n=e.regex;return{name:"GraphQL",aliases:["gql"], +case_insensitive:!0,disableAutodetect:!1,keywords:{ +keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"], +literal:["true","false","null"]}, +contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ +scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation", +begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/, +end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{ +scope:"symbol",begin:n.concat(/[_A-Za-z][_0-9A-Za-z]*/,n.lookahead(/\s*:/)), +relevance:0}],illegal:[/[;<']/,/BEGIN/]}},grmr_ini:e=>{const n=e.regex,t={ +className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{ +begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/, +end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{ +begin:/\$\{(.*?)\}/}]},r={className:"literal", +begin:/\bon|off|true|false|yes|no\b/},s={className:"string", +contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{ +begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}] +},o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0 +},l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{ +name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, +contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{ +begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)), +className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{ +const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+pe("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={ +keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"], +literal:["false","true","null"], +type:["char","boolean","long","float","int","byte","short","double"], +built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{ +begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/, +end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} +;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, +relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ +begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/, +className:"string",contains:[e.BACKSLASH_ESCAPE] +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{ +1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{ +begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type", +3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword", +3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"new throw return else",relevance:0},{ +begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ +2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/, +end:/\)/,keywords:i,relevance:0, +contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,me,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},me,r]}},grmr_javascript:Oe, +grmr_json:e=>{const n=["true","false","null"],t={scope:"literal", +beginKeywords:n.join(" ")};return{name:"JSON",keywords:{literal:n},contains:[{ +className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{ +match:/[{}[\],:]/,className:"punctuation",relevance:0 +},e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], +illegal:"\\S"}},grmr_kotlin:e=>{const n={ +keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", +built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", +literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" +},a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={ +className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", +variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'", +illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, +contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={ +className:"meta", +begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" +},o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, +end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}] +},l=me,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={ +variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, +contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g], +{name:"Kotlin",aliases:["kt","kts"],keywords:n, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", +begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword", +begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", +begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$", +returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, +keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, +endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, +endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0 +},e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{ +begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{ +3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, +illegal:"extends implements",contains:[{ +beginKeywords:"public protected internal private constructor" +},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, +excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/, +excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env", +end:"$",illegal:"\n"},l]}},grmr_less:e=>{ +const n=ie(e),t=de,a="[\\w-]+",i="("+a+"|@\\{"+a+"\\})",r=[],s=[],o=e=>({ +className:"string",begin:"~?"+e+".*?"+e}),l=(e,n,t)=>({className:e,begin:n, +relevance:t}),c={$pattern:/[a-z-]+/,keyword:"and or not only", +attribute:se.join(" ")},d={begin:"\\(",end:"\\)",contains:s,keywords:c, +relevance:0} +;s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o("'"),o('"'),n.CSS_NUMBER_MODE,{ +begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]", +excludeEnd:!0} +},n.HEXCOLOR,d,l("variable","@@?"+a,10),l("variable","@\\{"+a+"\\}"),l("built_in","~?`[^`]*?`"),{ +className:"attribute",begin:a+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0 +},n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const g=s.concat({ +begin:/\{/,end:/\}/,contains:r}),u={beginKeywords:"when",endsWithParent:!0, +contains:[{beginKeywords:"and not"}].concat(s)},b={begin:i+"\\s*:", +returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/ +},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ce.join("|")+")\\b", +end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}] +},m={className:"keyword", +begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", +starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:s,relevance:0}},p={ +className:"variable",variants:[{begin:"@"+a+"\\s*:",relevance:15},{begin:"@"+a +}],starts:{end:"[;}]",returnEnd:!0,contains:g}},_={variants:[{ +begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0, +returnEnd:!0,illegal:"[<='$\"]",relevance:0, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,l("keyword","all\\b"),l("variable","@\\{"+a+"\\}"),{ +begin:"\\b("+re.join("|")+")\\b",className:"selector-tag" +},n.CSS_NUMBER_MODE,l("selector-tag",i,0),l("selector-id","#"+i),l("selector-class","\\."+i,0),l("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{ +className:"selector-pseudo",begin:":("+oe.join("|")+")"},{ +className:"selector-pseudo",begin:":(:)?("+le.join("|")+")"},{begin:/\(/, +end:/\)/,relevance:0,contains:g},{begin:"!important"},n.FUNCTION_DISPATCH]},h={ +begin:a+":(:)?"+`(${t.join("|")})`,returnBegin:!0,contains:[_]} +;return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,p,h,b,_,u,n.FUNCTION_DISPATCH), +{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}}, +grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"] +},i=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,t,{contains:[a],relevance:10 +})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE, +literal:"true false nil", +keyword:"and break do else elseif end for goto if in local not or repeat return then until while", +built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" +},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)", +contains:[e.inherit(e.TITLE_MODE,{ +begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", +begin:"\\(",endsWithParent:!0,contains:i}].concat(i) +},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", +begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={ +className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{ +const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},t={ +variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{ +begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, +relevance:2},{ +begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ +begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ +},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[], +variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] +},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ +begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[] +}),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r) +;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o) +})),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{ +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", +contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", +end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o, +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ +begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}},grmr_objectivec:e=>{ +const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n, +keyword:["@interface","@class","@protocol","@implementation"]};return{ +name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"], +keywords:{"variable.language":["this","super"],$pattern:n, +keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"], +literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"], +built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"], +type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"] +},illegal:"/,end:/$/,illegal:"\\n" +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class", +begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t, +contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE, +relevance:0}]}},grmr_perl:e=>{const n=e.regex,t=/[dualxmsipngr]{0,12}/,a={ +$pattern:/[\w.]+/, +keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0" +},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/, +end:/\}/},s={variants:[{begin:/\$\d/},{ +begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])") +},{begin:/[$%@][^\s\w{]/,relevance:0}] +},o=[e.BACKSLASH_ESCAPE,i,s],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(e,a,i="\\1")=>{ +const r="\\1"===i?i:n.concat(i,a) +;return n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,t) +},d=(e,a,i)=>n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,t),g=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{ +endsWithParent:!0}),r,{className:"string",contains:o,variants:[{ +begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[", +end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{ +begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">", +relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'", +contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{ +begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number", +begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", +relevance:0},{ +begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*", +keywords:"split return print reverse grep",relevance:0, +contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{ +begin:c("s|tr|y",n.either(...l,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{ +begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{ +className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{ +begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",n.either(...l,{capture:!0 +}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{ +begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub", +end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{ +begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$", +subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}] +}];return i.contains=g,r.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:a, +contains:g}},grmr_php:e=>{ +const n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,a=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),i=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r={ +scope:"variable",match:"\\$+"+a},s={scope:"subst",variants:[{begin:/\$\w+/},{ +begin:/\{\$/,end:/\}/}]},o=e.inherit(e.APOS_STRING_MODE,{illegal:null +}),l="[ \t\n]",c={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{ +illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(s)}),o,{ +begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/, +contains:e.QUOTE_STRING_MODE.contains.concat(s),"on:begin":(e,n)=>{ +n.data._beginMatch=e[1]||e[2]},"on:end":(e,n)=>{ +n.data._beginMatch!==e[1]&&n.ignoreMatch()}},e.END_SAME_AS_BEGIN({ +begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},d={scope:"number",variants:[{ +begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{ +begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{ +begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?" +}],relevance:0 +},g=["false","null","true"],u=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],b=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],m={ +keyword:u,literal:(e=>{const n=[];return e.forEach((e=>{ +n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase()) +})),n})(g),built_in:b},p=e=>e.map((e=>e.replace(/\|\d+$/,""))),_={variants:[{ +match:[/new/,n.concat(l,"+"),n.concat("(?!",p(b).join("\\b|"),"\\b)"),i],scope:{ +1:"keyword",4:"title.class"}}]},h=n.concat(a,"\\b(?!\\()"),f={variants:[{ +match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{2:"variable.constant" +}},{match:[/::/,/class/],scope:{2:"variable.language"}},{ +match:[i,n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{1:"title.class", +3:"variable.constant"}},{match:[i,n.concat("::",n.lookahead(/(?!class\b)/))], +scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class", +3:"variable.language"}}]},E={scope:"attr", +match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},y={relevance:0, +begin:/\(/,end:/\)/,keywords:m,contains:[E,r,f,e.C_BLOCK_COMMENT_MODE,c,d,_] +},N={relevance:0, +match:[/\b/,n.concat("(?!fn\\b|function\\b|",p(u).join("\\b|"),"|",p(b).join("\\b|"),"\\b)"),a,n.concat(l,"*"),n.lookahead(/(?=\()/)], +scope:{3:"title.function.invoke"},contains:[y]};y.contains.push(N) +;const w=[E,f,e.C_BLOCK_COMMENT_MODE,c,d,_];return{case_insensitive:!1, +keywords:m,contains:[{begin:n.concat(/#\[\s*/,i),beginScope:"meta",end:/]/, +endScope:"meta",keywords:{literal:g,keyword:["new","array"]},contains:[{ +begin:/\[/,end:/]/,keywords:{literal:g,keyword:["new","array"]}, +contains:["self",...w]},...w,{scope:"meta",match:i}] +},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{ +scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/, +keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE, +contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{ +begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{ +begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},r,N,f,{ +match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},_,{ +scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/, +excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use" +},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params", +begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:m, +contains:["self",r,f,e.C_BLOCK_COMMENT_MODE,c,d]}]},{scope:"class",variants:[{ +beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", +illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ +beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ +beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, +contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{ +beginKeywords:"use",relevance:0,end:";",contains:[{ +match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},c,d]} +},grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{ +begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*", +end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0 +},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null, +skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null, +contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text", +aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{ +const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={ +$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a, +built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], +literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], +type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] +},r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/, +end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={ +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, +contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ +begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, +end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/, +relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ +begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, +end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, +contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,g="\\b|"+a.join("|"),u={ +className:"number",relevance:0,variants:[{ +begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`},{begin:`(${d})[jJ]?`},{ +begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{ +begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})` +},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${c})[jJ](?=${g})` +}]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i, +contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={ +className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/, +end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i, +contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{ +name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i, +illegal:/(<\/|\?)|=>/,contains:[r,u,{begin:/\bself\b/},{beginKeywords:"if", +relevance:0},l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{ +1:"keyword",3:"title.function"},contains:[m]},{variants:[{ +match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}], +scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{ +className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,m,l]}]}}, +grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta.prompt", +starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{ +begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{ +const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/) +;return{name:"R",keywords:{$pattern:t, +keyword:"function if in break next repeat else for while", +literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10", +built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm" +},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/, +starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)), +endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{ +scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0 +}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}] +}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE], +variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"', +relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{ +1:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"}, +match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{ +2:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"}, +match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{ +match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`", +contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{ +const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={ +"variable.constant":["__FILE__","__LINE__","__ENCODING__"], +"variable.language":["self","super"], +keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"], +built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"], +literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={ +begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s] +}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10 +}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/, +end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c], +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{ +begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{ +begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//, +end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{ +begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ +begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ +begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ +begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ +begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)), +contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, +contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",u={className:"number", +relevance:0,variants:[{ +begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{ +begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" +},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ +begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{ +className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0, +keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{ +match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class", +4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{ +2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{ +1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{ +match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{ +begin:e.IDENT_RE+"::"},{className:"symbol", +begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", +begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},u,{className:"variable", +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ +className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0, +relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*", +keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c], +illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{ +begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[", +end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l) +;c.contains=m,b.contains=m;const p=[{begin:/^\s*=>/,starts:{end:"$",contains:m} +},{className:"meta.prompt", +begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", +starts:{end:"$",keywords:r,contains:m}}];return l.unshift(o),{name:"Ruby", +aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/, +contains:[e.SHEBANG({binary:"ruby"})].concat(p).concat(l).concat(m)}}, +grmr_rust:e=>{const n=e.regex,t={className:"title.function.invoke",relevance:0, +begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,e.IDENT_RE,n.lookahead(/\s*\(/)) +},a="([ui](8|16|32|64|128|size)|f(32|64))?",i=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],r=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"] +;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:r, +keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"], +literal:["true","false","Some","None","Ok","Err"],built_in:i},illegal:""},t]}}, +grmr_scss:e=>{const n=ie(e),t=le,a=oe,i="@[a-z-]+",r={className:"variable", +begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS", +case_insensitive:!0,illegal:"[=/|']", +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{ +className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{ +className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0 +},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag", +begin:"\\b("+re.join("|")+")\\b",relevance:0},{className:"selector-pseudo", +begin:":("+a.join("|")+")"},{className:"selector-pseudo", +begin:":(:)?("+t.join("|")+")"},r,{begin:/\(/,end:/\)/, +contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute", +begin:"\\b("+ce.join("|")+")\\b"},{ +begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" +},{begin:/:/,end:/[;}{]/,relevance:0, +contains:[n.BLOCK_COMMENT,r,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH] +},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{ +begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/, +keyword:"and or not only",attribute:se.join(" ")},contains:[{begin:i, +className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute" +},r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE] +},n.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session", +aliases:["console","shellsession"],contains:[{className:"meta.prompt", +begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/, +subLanguage:"bash"}}]}),grmr_sql:e=>{ +const n=e.regex,t=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],r=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=r,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!r.includes(e))),c={ +begin:n.concat(/\b/,n.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}} +;return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{ +$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t +;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e)) +})(l,{when:e=>e.length<3}),literal:a,type:i, +built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] +},contains:[{begin:n.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/, +keyword:l.concat(s),literal:a,type:i}},{className:"type", +begin:n.either("double precision","large object","with timezone","without timezone") +},c,{className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},{className:"string", +variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/, +contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{ +className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/, +relevance:0}]}},grmr_swift:e=>{const n={match:/\s+/,relevance:0 +},t=e.COMMENT("/\\*","\\*/",{contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],i={ +match:[/\./,m(...xe,...Me)],className:{2:"keyword"}},r={match:b(/\./,m(...Ae)), +relevance:0},s=Ae.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{ +className:"keyword", +match:m(...Ae.filter((e=>"string"!=typeof e)).concat(Se).map(ke),...Me)}]},l={ +$pattern:m(/\b\w+/,/#\w+/),keyword:s.concat(Re),literal:Ce},c=[i,r,o],g=[{ +match:b(/\./,m(...De)),relevance:0},{className:"built_in", +match:b(/\b/,m(...De),/(?=\()/)}],u={match:/->/,relevance:0},p=[u,{ +className:"operator",relevance:0,variants:[{match:Be},{match:`\\.(\\.|${Le})+`}] +}],_="([0-9]_*)+",h="([0-9a-fA-F]_*)+",f={className:"number",relevance:0, +variants:[{match:`\\b(${_})(\\.(${_}))?([eE][+-]?(${_}))?\\b`},{ +match:`\\b0x(${h})(\\.(${h}))?([pP][+-]?(${_}))?\\b`},{match:/\b0o([0-7]_*)+\b/ +},{match:/\b0b([01]_*)+\b/}]},E=(e="")=>({className:"subst",variants:[{ +match:b(/\\/,e,/[0\\tnr"']/)},{match:b(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}] +}),y=(e="")=>({className:"subst",match:b(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/) +}),N=(e="")=>({className:"subst",label:"interpol",begin:b(/\\/,e,/\(/),end:/\)/ +}),w=(e="")=>({begin:b(e,/"""/),end:b(/"""/,e),contains:[E(e),y(e),N(e)] +}),v=(e="")=>({begin:b(e,/"/),end:b(/"/,e),contains:[E(e),N(e)]}),O={ +className:"string", +variants:[w(),w("#"),w("##"),w("###"),v(),v("#"),v("##"),v("###")] +},k=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0, +contains:[e.BACKSLASH_ESCAPE]}],x={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//, +contains:k},M=e=>{const n=b(e,/\//),t=b(/\//,e);return{begin:n,end:t, +contains:[...k,{scope:"comment",begin:`#(?!.*${t})`,end:/$/}]}},S={ +scope:"regexp",variants:[M("###"),M("##"),M("#"),x]},A={match:b(/`/,Fe,/`/) +},C=[A,{className:"variable",match:/\$\d+/},{className:"variable", +match:`\\$${ze}+`}],T=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{ +contains:[{begin:/\(/,end:/\)/,keywords:Pe,contains:[...p,f,O]}]}},{ +scope:"keyword",match:b(/@/,m(...je))},{scope:"meta",match:b(/@/,Fe)}],R={ +match:d(/\b[A-Z]/),relevance:0,contains:[{className:"type", +match:b(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,ze,"+") +},{className:"type",match:Ue,relevance:0},{match:/[?!]+/,relevance:0},{ +match:/\.\.\./,relevance:0},{match:b(/\s+&\s+/,d(Ue)),relevance:0}]},D={ +begin://,keywords:l,contains:[...a,...c,...T,u,R]};R.contains.push(D) +;const I={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{ +match:b(Fe,/\s*:/),keywords:"_|0",relevance:0 +},...a,S,...c,...g,...p,f,O,...C,...T,R]},L={begin://, +keywords:"repeat each",contains:[...a,R]},B={begin:/\(/,end:/\)/,keywords:l, +contains:[{begin:m(d(b(Fe,/\s*:/)),d(b(Fe,/\s+/,Fe,/\s*:/))),end:/:/, +relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params", +match:Fe}]},...a,...c,...p,f,O,...T,R,I],endsParent:!0,illegal:/["']/},$={ +match:[/(func|macro)/,/\s+/,m(A.match,Fe,Be)],className:{1:"keyword", +3:"title.function"},contains:[L,B,n],illegal:[/\[/,/%/]},z={ +match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"}, +contains:[L,B,n],illegal:/\[|%/},F={match:[/operator/,/\s+/,Be],className:{ +1:"keyword",3:"title"}},U={begin:[/precedencegroup/,/\s+/,Ue],className:{ +1:"keyword",3:"title"},contains:[R],keywords:[...Te,...Ce],end:/}/} +;for(const e of O.variants){const n=e.contains.find((e=>"interpol"===e.label)) +;n.keywords=l;const t=[...c,...g,...p,f,O,...C];n.contains=[...t,{begin:/\(/, +end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:l, +contains:[...a,$,z,{beginKeywords:"struct protocol class extension enum actor", +end:"\\{",excludeEnd:!0,keywords:l,contains:[e.inherit(e.TITLE_MODE,{ +className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...c] +},F,U,{beginKeywords:"import",end:/$/,contains:[...a],relevance:0 +},S,...c,...g,...p,f,O,...C,...T,R,I]}},grmr_typescript:e=>{ +const n=Oe(e),t=_e,a=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],i={ +beginKeywords:"namespace",end:/\{/,excludeEnd:!0, +contains:[n.exports.CLASS_REFERENCE]},r={beginKeywords:"interface",end:/\{/, +excludeEnd:!0,keywords:{keyword:"interface extends",built_in:a}, +contains:[n.exports.CLASS_REFERENCE]},s={$pattern:_e, +keyword:he.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]), +literal:fe,built_in:ve.concat(a),"variable.language":we},o={className:"meta", +begin:"@"+t},l=(e,n,t)=>{const a=e.contains.findIndex((e=>e.label===n)) +;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)} +;return Object.assign(n.keywords,s), +n.exports.PARAMS_CONTAINS.push(o),n.contains=n.contains.concat([o,i,r]), +l(n,"shebang",e.SHEBANG()),l(n,"use_strict",{className:"meta",relevance:10, +begin:/^\s*['"]use strict['"]/ +}),n.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(n,{ +name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n},grmr_vbnet:e=>{ +const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,s={ +className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{ +begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{ +begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,r),/ *#/)}] +},o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}] +}),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]}) +;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0, +classNameAliases:{label:"symbol"},keywords:{ +keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield", +built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort", +type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort", +literal:"true false nothing"}, +illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{ +className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/, +end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0, +variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ +},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{ +begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{ +className:"label",begin:/^\w+:/},o,l,{className:"meta", +begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/, +end:/$/,keywords:{ +keyword:"const disable else elseif enable end externalsource if region then"}, +contains:[l]}]}},grmr_wasm:e=>{e.regex;const n=e.COMMENT(/\(;/,/;\)/) +;return n.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/, +keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"] +},contains:[e.COMMENT(/;;/,/$/),n,{match:[/(?:offset|align)/,/\s*/,/=/], +className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{ +match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{ +begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword", +3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/, +className:"type"},{className:"keyword", +match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/ +},{className:"number",relevance:0, +match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/ +}]}},grmr_xml:e=>{ +const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={ +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/, +contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] +},r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{ +className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={ +endsWithParent:!0,illegal:/`]+/}]}]}]};return{ +name:"HTML, XML", +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], +case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{ +className:"meta",begin://,contains:[i,r,o,s]}]}] +},e.COMMENT(//,{relevance:10}),{begin://, +relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/, +relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{ +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{ +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ +className:"tag",begin:/<>|<\/>/},{className:"tag", +begin:n.concat(//,/>/,/\s/)))), +end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{ +className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{ +className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]} +},grmr_yaml:e=>{ +const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={ +className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", +variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{ +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),r={ +end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},s={begin:/\{/, +end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={begin:"\\[",end:"\\]", +contains:[r],illegal:"\\n",relevance:0},l=[{className:"attr",variants:[{ +begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ +begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", +relevance:10},{className:"string", +begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ +begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, +relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type", +begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t +},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", +begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ +className:"number", +begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,a],c=[...l] +;return c.pop(),c.push(i),r.contains=c,{name:"YAML",case_insensitive:!0, +aliases:["yml"],contains:l}}});const He=ae;for(const e of Object.keys(Ke)){ +const n=e.replace("grmr_","").replace("_","-");He.registerLanguage(n,Ke[e])} +return He}() +;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); \ No newline at end of file diff --git a/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/vs2015.min.css b/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/vs2015.min.css new file mode 100644 index 00000000..7f6fe11c --- /dev/null +++ b/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/vs2015.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#1e1e1e;color:#dcdcdc}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-symbol{color:#569cd6}.hljs-link{color:#569cd6;text-decoration:underline}.hljs-built_in,.hljs-type{color:#4ec9b0}.hljs-class,.hljs-number{color:#b8d7a3}.hljs-meta .hljs-string,.hljs-string{color:#d69d85}.hljs-regexp,.hljs-template-tag{color:#9a5334}.hljs-formula,.hljs-function,.hljs-params,.hljs-subst,.hljs-title{color:#dcdcdc}.hljs-comment,.hljs-quote{color:#57a64a;font-style:italic}.hljs-doctag{color:#608b4e}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-tag{color:#9b9b9b}.hljs-template-variable,.hljs-variable{color:#bd63c5}.hljs-attr,.hljs-attribute{color:#9cdcfe}.hljs-section{color:gold}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-bullet,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag{color:#d7ba7d}.hljs-addition{background-color:#144212;display:inline-block;width:100%}.hljs-deletion{background-color:#600;display:inline-block;width:100%} \ No newline at end of file diff --git a/build/lib/exo/tinychat/static/unpkg.com/@marcreichel/alpine-autosize@1.3.x/dist/alpine-autosize.min.js b/build/lib/exo/tinychat/static/unpkg.com/@marcreichel/alpine-autosize@1.3.x/dist/alpine-autosize.min.js new file mode 100644 index 00000000..dd119d59 --- /dev/null +++ b/build/lib/exo/tinychat/static/unpkg.com/@marcreichel/alpine-autosize@1.3.x/dist/alpine-autosize.min.js @@ -0,0 +1,2 @@ +!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";var e=new Map;function t(t){var o=e.get(t);o&&o.destroy()}function o(t){var o=e.get(t);o&&o.update()}var r=null;"undefined"==typeof window?((r=function(e){return e}).destroy=function(e){return e},r.update=function(e){return e}):((r=function(t,o){return t&&Array.prototype.forEach.call(t.length?t:[t],(function(t){return function(t){if(t&&t.nodeName&&"TEXTAREA"===t.nodeName&&!e.has(t)){var o,r=null,n=window.getComputedStyle(t),i=(o=t.value,function(){s({testForHeightReduction:""===o||!t.value.startsWith(o),restoreTextAlign:null}),o=t.value}),l=function(o){t.removeEventListener("autosize:destroy",l),t.removeEventListener("autosize:update",a),t.removeEventListener("input",i),window.removeEventListener("resize",a),Object.keys(o).forEach((function(e){return t.style[e]=o[e]})),e.delete(t)}.bind(t,{height:t.style.height,resize:t.style.resize,textAlign:t.style.textAlign,overflowY:t.style.overflowY,overflowX:t.style.overflowX,wordWrap:t.style.wordWrap});t.addEventListener("autosize:destroy",l),t.addEventListener("autosize:update",a),t.addEventListener("input",i),window.addEventListener("resize",a),t.style.overflowX="hidden",t.style.wordWrap="break-word",e.set(t,{destroy:l,update:a}),a()}function s(e){var o,i,l=e.restoreTextAlign,a=void 0===l?null:l,d=e.testForHeightReduction,u=void 0===d||d,c=n.overflowY;if(0!==t.scrollHeight&&("vertical"===n.resize?t.style.resize="none":"both"===n.resize&&(t.style.resize="horizontal"),u&&(o=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push([e.parentNode,e.parentNode.scrollTop]),e=e.parentNode;return function(){return t.forEach((function(e){var t=e[0],o=e[1];t.style.scrollBehavior="auto",t.scrollTop=o,t.style.scrollBehavior=null}))}}(t),t.style.height=""),i="content-box"===n.boxSizing?t.scrollHeight-(parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)):t.scrollHeight+parseFloat(n.borderTopWidth)+parseFloat(n.borderBottomWidth),"none"!==n.maxHeight&&i>parseFloat(n.maxHeight)?("hidden"===n.overflowY&&(t.style.overflow="scroll"),i=parseFloat(n.maxHeight)):"hidden"!==n.overflowY&&(t.style.overflow="hidden"),t.style.height=i+"px",a&&(t.style.textAlign=a),o&&o(),r!==i&&(t.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),r=i),c!==n.overflow&&!a)){var f=n.textAlign;"hidden"===n.overflow&&(t.style.textAlign="start"===f?"end":"start"),s({restoreTextAlign:f,testForHeightReduction:!0})}}function a(){s({testForHeightReduction:!0,restoreTextAlign:null})}}(t)})),t}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],t),e},r.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],o),e});var n=r;document.addEventListener("alpine:init",(()=>{var e;(e=window.Alpine).directive("autosize",((e,{modifiers:t},{cleanup:o})=>{n(e);const r=Array.from(e.attributes);let i=!1;for(let{nodeName:e}of r)if("wire:model"===e||e.startsWith("wire:model.")){i=!0;break}!e.hasAttribute("wire:ignore")&&i&&e.setAttribute("wire:ignore","");const l=()=>{n.update(e)};e.addEventListener("autosize",l),o((()=>{n.destroy(e),e.removeEventListener("autosize",l)}))})),e.magic("autosize",(e=>t=>{(t||e).dispatchEvent(new Event("autosize"))}))}))})); +//# sourceMappingURL=alpine-autosize.min.js.map diff --git a/build/lib/exo/tinychat/static/unpkg.com/alpinejs@3.x.x/dist/cdn.min.js b/build/lib/exo/tinychat/static/unpkg.com/alpinejs@3.x.x/dist/cdn.min.js new file mode 100644 index 00000000..2ca48278 --- /dev/null +++ b/build/lib/exo/tinychat/static/unpkg.com/alpinejs@3.x.x/dist/cdn.min.js @@ -0,0 +1,5 @@ +(()=>{var rt=!1,nt=!1,U=[],it=-1;function qt(e){Cn(e)}function Cn(e){U.includes(e)||U.push(e),Tn()}function Ee(e){let t=U.indexOf(e);t!==-1&&t>it&&U.splice(t,1)}function Tn(){!nt&&!rt&&(rt=!0,queueMicrotask(Rn))}function Rn(){rt=!1,nt=!0;for(let e=0;ee.effect(t,{scheduler:r=>{ot?qt(r):r()}}),st=e.raw}function at(e){D=e}function Gt(e){let t=()=>{};return[n=>{let i=D(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),L(i))},i},()=>{t()}]}function ve(e,t){let r=!0,n,i=D(()=>{let o=e();JSON.stringify(o),r?n=o:queueMicrotask(()=>{t(o,n),n=o}),r=!1});return()=>L(i)}var Jt=[],Yt=[],Xt=[];function Zt(e){Xt.push(e)}function ee(e,t){typeof t=="function"?(e._x_cleanups||(e._x_cleanups=[]),e._x_cleanups.push(t)):(t=e,Yt.push(t))}function Ae(e){Jt.push(e)}function Oe(e,t,r){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(r)}function ct(e,t){e._x_attributeCleanups&&Object.entries(e._x_attributeCleanups).forEach(([r,n])=>{(t===void 0||t.includes(r))&&(n.forEach(i=>i()),delete e._x_attributeCleanups[r])})}function Qt(e){if(e._x_cleanups)for(;e._x_cleanups.length;)e._x_cleanups.pop()()}var lt=new MutationObserver(pt),ut=!1;function le(){lt.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),ut=!0}function ft(){Mn(),lt.disconnect(),ut=!1}var ce=[];function Mn(){let e=lt.takeRecords();ce.push(()=>e.length>0&&pt(e));let t=ce.length;queueMicrotask(()=>{if(ce.length===t)for(;ce.length>0;)ce.shift()()})}function _(e){if(!ut)return e();ft();let t=e();return le(),t}var dt=!1,Se=[];function er(){dt=!0}function tr(){dt=!1,pt(Se),Se=[]}function pt(e){if(dt){Se=Se.concat(e);return}let t=new Set,r=new Set,n=new Map,i=new Map;for(let o=0;os.nodeType===1&&t.add(s)),e[o].removedNodes.forEach(s=>s.nodeType===1&&r.add(s))),e[o].type==="attributes")){let s=e[o].target,a=e[o].attributeName,c=e[o].oldValue,l=()=>{n.has(s)||n.set(s,[]),n.get(s).push({name:a,value:s.getAttribute(a)})},u=()=>{i.has(s)||i.set(s,[]),i.get(s).push(a)};s.hasAttribute(a)&&c===null?l():s.hasAttribute(a)?(u(),l()):u()}i.forEach((o,s)=>{ct(s,o)}),n.forEach((o,s)=>{Jt.forEach(a=>a(s,o))});for(let o of r)t.has(o)||Yt.forEach(s=>s(o));t.forEach(o=>{o._x_ignoreSelf=!0,o._x_ignore=!0});for(let o of t)r.has(o)||o.isConnected&&(delete o._x_ignoreSelf,delete o._x_ignore,Xt.forEach(s=>s(o)),o._x_ignore=!0,o._x_ignoreSelf=!0);t.forEach(o=>{delete o._x_ignoreSelf,delete o._x_ignore}),t=null,r=null,n=null,i=null}function Ce(e){return F(j(e))}function P(e,t,r){return e._x_dataStack=[t,...j(r||e)],()=>{e._x_dataStack=e._x_dataStack.filter(n=>n!==t)}}function j(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot=="function"&&e instanceof ShadowRoot?j(e.host):e.parentNode?j(e.parentNode):[]}function F(e){return new Proxy({objects:e},Nn)}var Nn={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(t=>Object.keys(t))))},has({objects:e},t){return t==Symbol.unscopables?!1:e.some(r=>Object.prototype.hasOwnProperty.call(r,t)||Reflect.has(r,t))},get({objects:e},t,r){return t=="toJSON"?Dn:Reflect.get(e.find(n=>Reflect.has(n,t))||{},t,r)},set({objects:e},t,r,n){let i=e.find(s=>Object.prototype.hasOwnProperty.call(s,t))||e[e.length-1],o=Object.getOwnPropertyDescriptor(i,t);return o?.set&&o?.get?o.set.call(n,r)||!0:Reflect.set(i,t,r)}};function Dn(){return Reflect.ownKeys(this).reduce((t,r)=>(t[r]=Reflect.get(this,r),t),{})}function Te(e){let t=n=>typeof n=="object"&&!Array.isArray(n)&&n!==null,r=(n,i="")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach(([o,{value:s,enumerable:a}])=>{if(a===!1||s===void 0||typeof s=="object"&&s!==null&&s.__v_skip)return;let c=i===""?o:`${i}.${o}`;typeof s=="object"&&s!==null&&s._x_interceptor?n[o]=s.initialize(e,c,o):t(s)&&s!==n&&!(s instanceof Element)&&r(s,c)})};return r(e)}function Re(e,t=()=>{}){let r={initialValue:void 0,_x_interceptor:!0,initialize(n,i,o){return e(this.initialValue,()=>Pn(n,i),s=>mt(n,i,s),i,o)}};return t(r),n=>{if(typeof n=="object"&&n!==null&&n._x_interceptor){let i=r.initialize.bind(r);r.initialize=(o,s,a)=>{let c=n.initialize(o,s,a);return r.initialValue=c,i(o,s,a)}}else r.initialValue=n;return r}}function Pn(e,t){return t.split(".").reduce((r,n)=>r[n],e)}function mt(e,t,r){if(typeof t=="string"&&(t=t.split(".")),t.length===1)e[t[0]]=r;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),mt(e[t[0]],t.slice(1),r)}}var rr={};function y(e,t){rr[e]=t}function ue(e,t){return Object.entries(rr).forEach(([r,n])=>{let i=null;function o(){if(i)return i;{let[s,a]=_t(t);return i={interceptor:Re,...s},ee(t,a),i}}Object.defineProperty(e,`$${r}`,{get(){return n(t,o())},enumerable:!1})}),e}function nr(e,t,r,...n){try{return r(...n)}catch(i){te(i,e,t)}}function te(e,t,r=void 0){e=Object.assign(e??{message:"No error message given."},{el:t,expression:r}),console.warn(`Alpine Expression Error: ${e.message} + +${r?'Expression: "'+r+`" + +`:""}`,t),setTimeout(()=>{throw e},0)}var Me=!0;function De(e){let t=Me;Me=!1;let r=e();return Me=t,r}function M(e,t,r={}){let n;return x(e,t)(i=>n=i,r),n}function x(...e){return ir(...e)}var ir=gt;function or(e){ir=e}function gt(e,t){let r={};ue(r,e);let n=[r,...j(e)],i=typeof t=="function"?In(n,t):Ln(n,t,e);return nr.bind(null,e,t,i)}function In(e,t){return(r=()=>{},{scope:n={},params:i=[]}={})=>{let o=t.apply(F([n,...e]),i);Ne(r,o)}}var ht={};function kn(e,t){if(ht[e])return ht[e];let r=Object.getPrototypeOf(async function(){}).constructor,n=/^[\n\s]*if.*\(.*\)/.test(e.trim())||/^(let|const)\s/.test(e.trim())?`(async()=>{ ${e} })()`:e,o=(()=>{try{let s=new r(["__self","scope"],`with (scope) { __self.result = ${n} }; __self.finished = true; return __self.result;`);return Object.defineProperty(s,"name",{value:`[Alpine] ${e}`}),s}catch(s){return te(s,t,e),Promise.resolve()}})();return ht[e]=o,o}function Ln(e,t,r){let n=kn(t,r);return(i=()=>{},{scope:o={},params:s=[]}={})=>{n.result=void 0,n.finished=!1;let a=F([o,...e]);if(typeof n=="function"){let c=n(n,a).catch(l=>te(l,r,t));n.finished?(Ne(i,n.result,a,s,r),n.result=void 0):c.then(l=>{Ne(i,l,a,s,r)}).catch(l=>te(l,r,t)).finally(()=>n.result=void 0)}}}function Ne(e,t,r,n,i){if(Me&&typeof t=="function"){let o=t.apply(r,n);o instanceof Promise?o.then(s=>Ne(e,s,r,n)).catch(s=>te(s,i,t)):e(o)}else typeof t=="object"&&t instanceof Promise?t.then(o=>e(o)):e(t)}var bt="x-";function C(e=""){return bt+e}function sr(e){bt=e}var Pe={};function d(e,t){return Pe[e]=t,{before(r){if(!Pe[r]){console.warn(String.raw`Cannot find directive \`${r}\`. \`${e}\` will use the default order of execution`);return}let n=W.indexOf(r);W.splice(n>=0?n:W.indexOf("DEFAULT"),0,e)}}}function ar(e){return Object.keys(Pe).includes(e)}function de(e,t,r){if(t=Array.from(t),e._x_virtualDirectives){let o=Object.entries(e._x_virtualDirectives).map(([a,c])=>({name:a,value:c})),s=wt(o);o=o.map(a=>s.find(c=>c.name===a.name)?{name:`x-bind:${a.name}`,value:`"${a.value}"`}:a),t=t.concat(o)}let n={};return t.map(ur((o,s)=>n[o]=s)).filter(dr).map(jn(n,r)).sort(Fn).map(o=>$n(e,o))}function wt(e){return Array.from(e).map(ur()).filter(t=>!dr(t))}var xt=!1,fe=new Map,cr=Symbol();function lr(e){xt=!0;let t=Symbol();cr=t,fe.set(t,[]);let r=()=>{for(;fe.get(t).length;)fe.get(t).shift()();fe.delete(t)},n=()=>{xt=!1,r()};e(r),n()}function _t(e){let t=[],r=a=>t.push(a),[n,i]=Gt(e);return t.push(i),[{Alpine:B,effect:n,cleanup:r,evaluateLater:x.bind(x,e),evaluate:M.bind(M,e)},()=>t.forEach(a=>a())]}function $n(e,t){let r=()=>{},n=Pe[t.type]||r,[i,o]=_t(e);Oe(e,t.original,o);let s=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,i),n=n.bind(n,e,t,i),xt?fe.get(cr).push(n):n())};return s.runCleanups=o,s}var Ie=(e,t)=>({name:r,value:n})=>(r.startsWith(e)&&(r=r.replace(e,t)),{name:r,value:n}),ke=e=>e;function ur(e=()=>{}){return({name:t,value:r})=>{let{name:n,value:i}=fr.reduce((o,s)=>s(o),{name:t,value:r});return n!==t&&e(n,t),{name:n,value:i}}}var fr=[];function re(e){fr.push(e)}function dr({name:e}){return pr().test(e)}var pr=()=>new RegExp(`^${bt}([^:^.]+)\\b`);function jn(e,t){return({name:r,value:n})=>{let i=r.match(pr()),o=r.match(/:([a-zA-Z0-9\-_:]+)/),s=r.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],a=t||e[r]||r;return{type:i?i[1]:null,value:o?o[1]:null,modifiers:s.map(c=>c.replace(".","")),expression:n,original:a}}}var yt="DEFAULT",W=["ignore","ref","data","id","anchor","bind","init","for","model","modelable","transition","show","if",yt,"teleport"];function Fn(e,t){let r=W.indexOf(e.type)===-1?yt:e.type,n=W.indexOf(t.type)===-1?yt:t.type;return W.indexOf(r)-W.indexOf(n)}function G(e,t,r={}){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0}))}function T(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>T(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)T(n,t,!1),n=n.nextElementSibling}function E(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var mr=!1;function _r(){mr&&E("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),mr=!0,document.body||E("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's ` - - - - - - - - - - - - - - - - - - - -

- -
-
- -
- - -
-
-
- -
-
-
- -
-
-

tinychat

- -
- -
- -
- -
-
-
-
- - - - - -
-
- -

-

SEC TO FIRST TOKEN

-
- -

-

TOKENS/SEC

-
- -

-

TOKENS

-
-
-
- - -
-Uploaded Image - -
- - -
-
-
- diff --git a/build/lib/exo/tinychat/index.js b/build/lib/exo/tinychat/index.js deleted file mode 100644 index c839d3d7..00000000 --- a/build/lib/exo/tinychat/index.js +++ /dev/null @@ -1,687 +0,0 @@ -document.addEventListener("alpine:init", () => { - Alpine.data("state", () => ({ - // current state - cstate: { - time: null, - messages: [], - selectedModel: 'llama-3.2-1b', - }, - - // historical state - histories: JSON.parse(localStorage.getItem("histories")) || [], - - home: 0, - generating: false, - endpoint: `${window.location.origin}/v1`, - errorMessage: null, - errorExpanded: false, - errorTimeout: null, - - // performance tracking - time_till_first: 0, - tokens_per_second: 0, - total_tokens: 0, - - // image handling - imagePreview: null, - - // download progress - downloadProgress: null, - downloadProgressInterval: null, // To keep track of the polling interval - - // Pending message storage - pendingMessage: null, - - init() { - // Clean up any pending messages - localStorage.removeItem("pendingMessage"); - - // Start polling for download progress - this.startDownloadProgressPolling(); - }, - - removeHistory(cstate) { - const index = this.histories.findIndex((state) => { - return state.time === cstate.time; - }); - if (index !== -1) { - this.histories.splice(index, 1); - localStorage.setItem("histories", JSON.stringify(this.histories)); - } - }, - - clearAllHistory() { - this.histories = []; - localStorage.setItem("histories", JSON.stringify([])); - }, - - // Utility functions - formatBytes(bytes) { - if (bytes === 0) return '0 B'; - const k = 1024; - const sizes = ['B', 'KB', 'MB', 'GB', 'TB']; - const i = Math.floor(Math.log(bytes) / Math.log(k)); - return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; - }, - - formatDuration(seconds) { - if (seconds === null || seconds === undefined || isNaN(seconds)) return ''; - const h = Math.floor(seconds / 3600); - const m = Math.floor((seconds % 3600) / 60); - const s = Math.floor(seconds % 60); - if (h > 0) return `${h}h ${m}m ${s}s`; - if (m > 0) return `${m}m ${s}s`; - return `${s}s`; - }, - - async populateSelector() { - try { - const response = await fetch(`${window.location.origin}/modelpool`); - const responseText = await response.text(); // Get raw response text first - - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`); - } - - // Try to parse the response text - let responseJson; - try { - responseJson = JSON.parse(responseText); - } catch (parseError) { - console.error('Failed to parse JSON:', parseError); - throw new Error(`Invalid JSON response: ${responseText}`); - } - - const sel = document.querySelector(".model-select"); - if (!sel) { - throw new Error("Could not find model selector element"); - } - - // Clear the current options and add new ones - sel.innerHTML = ''; - - const modelDict = responseJson["model pool"]; - if (!modelDict) { - throw new Error("Response missing 'model pool' property"); - } - - Object.entries(modelDict).forEach(([key, value]) => { - const opt = document.createElement("option"); - opt.value = key; - opt.textContent = value; - sel.appendChild(opt); - }); - - // Set initial value to the first model - const firstKey = Object.keys(modelDict)[0]; - if (firstKey) { - sel.value = firstKey; - this.cstate.selectedModel = firstKey; - } - } catch (error) { - console.error("Error populating model selector:", error); - this.errorMessage = `Failed to load models: ${error.message}`; - } - }, - - async handleImageUpload(event) { - const file = event.target.files[0]; - if (file) { - const reader = new FileReader(); - reader.onload = (e) => { - this.imagePreview = e.target.result; - this.imageUrl = e.target.result; // Store the image URL - // Add image preview to the chat - this.cstate.messages.push({ - role: "user", - content: `![Uploaded Image](${this.imagePreview})`, - }); - }; - reader.readAsDataURL(file); - } - }, - - - async handleSend() { - try { - const el = document.getElementById("input-form"); - const value = el.value.trim(); - if (!value && !this.imagePreview) return; - - if (this.generating) return; - this.generating = true; - if (this.home === 0) this.home = 1; - - // ensure that going back in history will go back to home - window.history.pushState({}, "", "/"); - - // add message to list - if (value) { - this.cstate.messages.push({ role: "user", content: value }); - } - - // clear textarea - el.value = ""; - el.style.height = "auto"; - el.style.height = el.scrollHeight + "px"; - - localStorage.setItem("pendingMessage", value); - this.processMessage(value); - } catch (error) { - console.error('error', error); - const errorDetails = { - message: error.message || 'Unknown error', - stack: error.stack, - name: error.name || 'Error' - }; - - this.errorMessage = { - basic: `${errorDetails.name}: ${errorDetails.message}`, - stack: errorDetails.stack - }; - - // Clear any existing timeout - if (this.errorTimeout) { - clearTimeout(this.errorTimeout); - } - - // Only set the timeout if the error details aren't expanded - if (!this.errorExpanded) { - this.errorTimeout = setTimeout(() => { - this.errorMessage = null; - this.errorExpanded = false; - }, 30 * 1000); - } - this.generating = false; - } - }, - - async processMessage(value) { - try { - // reset performance tracking - const prefill_start = Date.now(); - let start_time = 0; - let tokens = 0; - this.tokens_per_second = 0; - - // prepare messages for API request - let apiMessages = this.cstate.messages.map(msg => { - if (msg.content.startsWith('![Uploaded Image]')) { - return { - role: "user", - content: [ - { - type: "image_url", - image_url: { - url: this.imageUrl - } - }, - { - type: "text", - text: value // Use the actual text the user typed - } - ] - }; - } else { - return { - role: msg.role, - content: msg.content - }; - } - }); - - if (this.cstate.selectedModel === "stable-diffusion-2-1-base") { - // Send a request to the image generation endpoint - console.log(apiMessages[apiMessages.length - 1].content) - console.log(this.cstate.selectedModel) - console.log(this.endpoint) - const response = await fetch(`${this.endpoint}/image/generations`, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - "model": 'stable-diffusion-2-1-base', - "prompt": apiMessages[apiMessages.length - 1].content, - "image_url": this.imageUrl - }), - }); - - if (!response.ok) { - throw new Error("Failed to fetch"); - } - const reader = response.body.getReader(); - let done = false; - let gottenFirstChunk = false; - - while (!done) { - const { value, done: readerDone } = await reader.read(); - done = readerDone; - const decoder = new TextDecoder(); - - if (value) { - // Assume non-binary data (text) comes first - const chunk = decoder.decode(value, { stream: true }); - const parsed = JSON.parse(chunk); - console.log(parsed) - - if (parsed.progress) { - if (!gottenFirstChunk) { - this.cstate.messages.push({ role: "assistant", content: "" }); - gottenFirstChunk = true; - } - this.cstate.messages[this.cstate.messages.length - 1].content = parsed.progress; - } - else if (parsed.images) { - if (!gottenFirstChunk) { - this.cstate.messages.push({ role: "assistant", content: "" }); - gottenFirstChunk = true; - } - const imageUrl = parsed.images[0].url; - console.log(imageUrl) - this.cstate.messages[this.cstate.messages.length - 1].content = `![Generated Image](${imageUrl}?t=${Date.now()})`; - } - } - } - } - - else{ - const containsImage = apiMessages.some(msg => Array.isArray(msg.content) && msg.content.some(item => item.type === 'image_url')); - if (containsImage) { - // Map all messages with string content to object with type text - apiMessages = apiMessages.map(msg => { - if (typeof msg.content === 'string') { - return { - ...msg, - content: [ - { - type: "text", - text: msg.content - } - ] - }; - } - return msg; - }); - } - - console.log(apiMessages) - //start receiving server sent events - let gottenFirstChunk = false; - for await ( - const chunk of this.openaiChatCompletion(this.cstate.selectedModel, apiMessages) - ) { - if (!gottenFirstChunk) { - this.cstate.messages.push({ role: "assistant", content: "" }); - gottenFirstChunk = true; - } - - // add chunk to the last message - this.cstate.messages[this.cstate.messages.length - 1].content += chunk; - - // calculate performance tracking - tokens += 1; - this.total_tokens += 1; - if (start_time === 0) { - start_time = Date.now(); - this.time_till_first = start_time - prefill_start; - } else { - const diff = Date.now() - start_time; - if (diff > 0) { - this.tokens_per_second = tokens / (diff / 1000); - } - } - } - } - // Clean the cstate before adding it to histories - const cleanedCstate = JSON.parse(JSON.stringify(this.cstate)); - cleanedCstate.messages = cleanedCstate.messages.map(msg => { - if (Array.isArray(msg.content)) { - return { - ...msg, - content: msg.content.map(item => - item.type === 'image_url' ? { type: 'image_url', image_url: { url: '[IMAGE_PLACEHOLDER]' } } : item - ) - }; - } - return msg; - }); - - // Update the state in histories or add it if it doesn't exist - const index = this.histories.findIndex((cstate) => cstate.time === cleanedCstate.time); - cleanedCstate.time = Date.now(); - if (index !== -1) { - // Update the existing entry - this.histories[index] = cleanedCstate; - } else { - // Add a new entry - this.histories.push(cleanedCstate); - } - console.log(this.histories) - // update in local storage - try { - localStorage.setItem("histories", JSON.stringify(this.histories)); - } catch (error) { - console.error("Failed to save histories to localStorage:", error); - } - } catch (error) { - console.error('error', error); - const errorDetails = { - message: error.message || 'Unknown error', - stack: error.stack, - name: error.name || 'Error' - }; - - this.errorMessage = { - basic: `${errorDetails.name}: ${errorDetails.message}`, - stack: errorDetails.stack - }; - - // Clear any existing timeout - if (this.errorTimeout) { - clearTimeout(this.errorTimeout); - } - - // Only set the timeout if the error details aren't expanded - if (!this.errorExpanded) { - this.errorTimeout = setTimeout(() => { - this.errorMessage = null; - this.errorExpanded = false; - }, 30 * 1000); - } - } finally { - this.generating = false; - } - }, - - async handleEnter(event) { - // if shift is not pressed - if (!event.shiftKey) { - event.preventDefault(); - await this.handleSend(); - } - }, - - updateTotalTokens(messages) { - fetch(`${this.endpoint}/chat/token/encode`, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ messages }), - }).then((response) => response.json()).then((data) => { - this.total_tokens = data.length; - }).catch(console.error); - }, - - async *openaiChatCompletion(model, messages) { - // stream response - console.log("model", model) - const response = await fetch(`${this.endpoint}/chat/completions`, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - "model": model, - "messages": messages, - "stream": true, - }), - }); - if (!response.ok) { - const errorResBody = await response.json() - if (errorResBody?.detail) { - throw new Error(`Failed to fetch completions: ${errorResBody.detail}`); - } else { - throw new Error("Failed to fetch completions: Unknown error"); - } - } - - const reader = response.body.pipeThrough(new TextDecoderStream()) - .pipeThrough(new EventSourceParserStream()).getReader(); - while (true) { - const { done, value } = await reader.read(); - if (done) { - break; - } - if (value.type === "event") { - const json = JSON.parse(value.data); - if (json.choices) { - const choice = json.choices[0]; - if (choice.finish_reason === "stop") { - break; - } - yield choice.delta.content; - } - } - } - }, - - async fetchDownloadProgress() { - try { - const response = await fetch(`${this.endpoint}/download/progress`); - if (response.ok) { - const data = await response.json(); - const progressArray = Object.values(data); - if (progressArray.length > 0) { - this.downloadProgress = progressArray.map(progress => { - // Check if download is complete - if (progress.status === "complete") { - return { - ...progress, - isComplete: true, - percentage: 100 - }; - } else if (progress.status === "failed") { - return { - ...progress, - isComplete: false, - errorMessage: "Download failed" - }; - } else { - return { - ...progress, - isComplete: false, - downloaded_bytes_display: this.formatBytes(progress.downloaded_bytes), - total_bytes_display: this.formatBytes(progress.total_bytes), - overall_speed_display: progress.overall_speed ? this.formatBytes(progress.overall_speed) + '/s' : '', - overall_eta_display: progress.overall_eta ? this.formatDuration(progress.overall_eta) : '', - percentage: ((progress.downloaded_bytes / progress.total_bytes) * 100).toFixed(2) - }; - } - }); - const allComplete = this.downloadProgress.every(progress => progress.isComplete); - if (allComplete) { - // Check for pendingMessage - const savedMessage = localStorage.getItem("pendingMessage"); - if (savedMessage) { - // Clear pendingMessage - localStorage.removeItem("pendingMessage"); - // Call processMessage() with savedMessage - if (this.lastErrorMessage) { - await this.processMessage(savedMessage); - } - } - this.lastErrorMessage = null; - this.downloadProgress = null; - } - } else { - // No ongoing download - this.downloadProgress = null; - } - } - } catch (error) { - console.error("Error fetching download progress:", error); - this.downloadProgress = null; - } - }, - - startDownloadProgressPolling() { - if (this.downloadProgressInterval) { - // Already polling - return; - } - this.fetchDownloadProgress(); // Fetch immediately - this.downloadProgressInterval = setInterval(() => { - this.fetchDownloadProgress(); - }, 1000); // Poll every second - }, - })); -}); - -const { markedHighlight } = globalThis.markedHighlight; -marked.use(markedHighlight({ - langPrefix: "hljs language-", - highlight(code, lang, _info) { - const language = hljs.getLanguage(lang) ? lang : "plaintext"; - return hljs.highlight(code, { language }).value; - }, -})); - -// **** eventsource-parser **** -class EventSourceParserStream extends TransformStream { - constructor() { - let parser; - - super({ - start(controller) { - parser = createParser((event) => { - if (event.type === "event") { - controller.enqueue(event); - } - }); - }, - - transform(chunk) { - parser.feed(chunk); - }, - }); - } -} - -function createParser(onParse) { - let isFirstChunk; - let buffer; - let startingPosition; - let startingFieldLength; - let eventId; - let eventName; - let data; - reset(); - return { - feed, - reset, - }; - function reset() { - isFirstChunk = true; - buffer = ""; - startingPosition = 0; - startingFieldLength = -1; - eventId = void 0; - eventName = void 0; - data = ""; - } - function feed(chunk) { - buffer = buffer ? buffer + chunk : chunk; - if (isFirstChunk && hasBom(buffer)) { - buffer = buffer.slice(BOM.length); - } - isFirstChunk = false; - const length = buffer.length; - let position = 0; - let discardTrailingNewline = false; - while (position < length) { - if (discardTrailingNewline) { - if (buffer[position] === "\n") { - ++position; - } - discardTrailingNewline = false; - } - let lineLength = -1; - let fieldLength = startingFieldLength; - let character; - for ( - let index = startingPosition; - lineLength < 0 && index < length; - ++index - ) { - character = buffer[index]; - if (character === ":" && fieldLength < 0) { - fieldLength = index - position; - } else if (character === "\r") { - discardTrailingNewline = true; - lineLength = index - position; - } else if (character === "\n") { - lineLength = index - position; - } - } - if (lineLength < 0) { - startingPosition = length - position; - startingFieldLength = fieldLength; - break; - } else { - startingPosition = 0; - startingFieldLength = -1; - } - parseEventStreamLine(buffer, position, fieldLength, lineLength); - position += lineLength + 1; - } - if (position === length) { - buffer = ""; - } else if (position > 0) { - buffer = buffer.slice(position); - } - } - function parseEventStreamLine(lineBuffer, index, fieldLength, lineLength) { - if (lineLength === 0) { - if (data.length > 0) { - onParse({ - type: "event", - id: eventId, - event: eventName || void 0, - data: data.slice(0, -1), - // remove trailing newline - }); - - data = ""; - eventId = void 0; - } - eventName = void 0; - return; - } - const noValue = fieldLength < 0; - const field = lineBuffer.slice( - index, - index + (noValue ? lineLength : fieldLength), - ); - let step = 0; - if (noValue) { - step = lineLength; - } else if (lineBuffer[index + fieldLength + 1] === " ") { - step = fieldLength + 2; - } else { - step = fieldLength + 1; - } - const position = index + step; - const valueLength = lineLength - step; - const value = lineBuffer.slice(position, position + valueLength).toString(); - if (field === "data") { - data += value ? "".concat(value, "\n") : "\n"; - } else if (field === "event") { - eventName = value; - } else if (field === "id" && !value.includes("\0")) { - eventId = value; - } else if (field === "retry") { - const retry = parseInt(value, 10); - if (!Number.isNaN(retry)) { - onParse({ - type: "reconnect-interval", - value: retry, - }); - } - } - } -} - -const BOM = [239, 187, 191]; -function hasBom(buffer) { - return BOM.every((charCode, index) => buffer.charCodeAt(index) === charCode); -} diff --git a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpine-collective/toolkit@1.0.2/dist/cdn.min.js b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpine-collective/toolkit@1.0.2/dist/cdn.min.js deleted file mode 100644 index a363545c..00000000 --- a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpine-collective/toolkit@1.0.2/dist/cdn.min.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{var H=Object.create,v=Object.defineProperty,N=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty,z=Object.getOwnPropertyNames,q=Object.getOwnPropertyDescriptor;var W=n=>v(n,"__esModule",{value:!0});var D=(n,e)=>()=>(e||(e={exports:{}},n(e.exports,e)),e.exports);var F=(n,e,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of z(e))!V.call(n,r)&&r!=="default"&&v(n,r,{get:()=>e[r],enumerable:!(o=q(e,r))||o.enumerable});return n},U=n=>F(W(v(n!=null?H(N(n)):{},"default",n&&n.__esModule&&"default"in n?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n);var I=D((E,w)=>{(function(){"use strict";function n(){var e=window,o=document;if("scrollBehavior"in o.documentElement.style&&e.__forceSmoothScrollPolyfill__!==!0)return;var r=e.HTMLElement||e.Element,i=468,f={scroll:e.scroll||e.scrollTo,scrollBy:e.scrollBy,elementScroll:r.prototype.scroll||b,scrollIntoView:r.prototype.scrollIntoView},u=e.performance&&e.performance.now?e.performance.now.bind(e.performance):Date.now;function c(t){var l=["MSIE ","Trident/","Edge/"];return new RegExp(l.join("|")).test(t)}var g=c(e.navigator.userAgent)?1:0;function b(t,l){this.scrollLeft=t,this.scrollTop=l}function M(t){return .5*(1-Math.cos(Math.PI*t))}function m(t){if(t===null||typeof t!="object"||t.behavior===void 0||t.behavior==="auto"||t.behavior==="instant")return!0;if(typeof t=="object"&&t.behavior==="smooth")return!1;throw new TypeError("behavior member of ScrollOptions "+t.behavior+" is not a valid value for enumeration ScrollBehavior.")}function O(t,l){if(l==="Y")return t.clientHeight+g1?1:a,s=M(a),d=t.startX+(t.x-t.startX)*s,p=t.startY+(t.y-t.startY)*s,t.method.call(t.scrollable,d,p),(d!==t.x||p!==t.y)&&e.requestAnimationFrame(S.bind(e,t))}function h(t,l,s){var d,p,a,y,_=u();t===o.body?(d=e,p=e.scrollX||e.pageXOffset,a=e.scrollY||e.pageYOffset,y=f.scroll):(d=t,p=t.scrollLeft,a=t.scrollTop,y=b),S({scrollable:d,method:y,startTime:_,startX:p,startY:a,x:l,y:s})}e.scroll=e.scrollTo=function(){if(arguments[0]!==void 0){if(m(arguments[0])===!0){f.scroll.call(e,arguments[0].left!==void 0?arguments[0].left:typeof arguments[0]!="object"?arguments[0]:e.scrollX||e.pageXOffset,arguments[0].top!==void 0?arguments[0].top:arguments[1]!==void 0?arguments[1]:e.scrollY||e.pageYOffset);return}h.call(e,o.body,arguments[0].left!==void 0?~~arguments[0].left:e.scrollX||e.pageXOffset,arguments[0].top!==void 0?~~arguments[0].top:e.scrollY||e.pageYOffset)}},e.scrollBy=function(){if(arguments[0]!==void 0){if(m(arguments[0])){f.scrollBy.call(e,arguments[0].left!==void 0?arguments[0].left:typeof arguments[0]!="object"?arguments[0]:0,arguments[0].top!==void 0?arguments[0].top:arguments[1]!==void 0?arguments[1]:0);return}h.call(e,o.body,~~arguments[0].left+(e.scrollX||e.pageXOffset),~~arguments[0].top+(e.scrollY||e.pageYOffset))}},r.prototype.scroll=r.prototype.scrollTo=function(){if(arguments[0]!==void 0){if(m(arguments[0])===!0){if(typeof arguments[0]=="number"&&arguments[1]===void 0)throw new SyntaxError("Value could not be converted");f.elementScroll.call(this,arguments[0].left!==void 0?~~arguments[0].left:typeof arguments[0]!="object"?~~arguments[0]:this.scrollLeft,arguments[0].top!==void 0?~~arguments[0].top:arguments[1]!==void 0?~~arguments[1]:this.scrollTop);return}var t=arguments[0].left,l=arguments[0].top;h.call(this,this,typeof t=="undefined"?this.scrollLeft:~~t,typeof l=="undefined"?this.scrollTop:~~l)}},r.prototype.scrollBy=function(){if(arguments[0]!==void 0){if(m(arguments[0])===!0){f.elementScroll.call(this,arguments[0].left!==void 0?~~arguments[0].left+this.scrollLeft:~~arguments[0]+this.scrollLeft,arguments[0].top!==void 0?~~arguments[0].top+this.scrollTop:~~arguments[1]+this.scrollTop);return}this.scroll({left:~~arguments[0].left+this.scrollLeft,top:~~arguments[0].top+this.scrollTop,behavior:arguments[0].behavior})}},r.prototype.scrollIntoView=function(){if(m(arguments[0])===!0){f.scrollIntoView.call(this,arguments[0]===void 0?!0:arguments[0]);return}var t=$(this),l=t.getBoundingClientRect(),s=this.getBoundingClientRect();t!==o.body?(h.call(this,t,t.scrollLeft+s.left-l.left,t.scrollTop+s.top-l.top),e.getComputedStyle(t).position!=="fixed"&&e.scrollBy({left:l.left,top:l.top,behavior:"smooth"})):e.scrollBy({left:s.left,top:s.top,behavior:"smooth"})}}typeof E=="object"&&typeof w!="undefined"?w.exports={polyfill:n}:n()})()});function j(n){n.magic("range",()=>function(e,o,r=1){typeof o=="undefined"&&(o=e,e=e?1:0);let i=e>o;i&&([e,o]=[o,e]);let f=Array.from({length:(o-e)/r+1},(u,c)=>e+c*r);return i?f.reverse():f})}var Y=U(I());function X(n){Y.default.polyfill(),n.magic("scroll",()=>function(e,o={}){let r=e,i=o.offset?parseInt(o.offset,10):0;if(delete o.offset,typeof e=="string"&&/^[0-9]+?/g.test(e)&&(e=parseInt(e,10)),typeof e=="string"&&(e=document.querySelector(e)),e instanceof Element&&(e=Math.floor(e.getBoundingClientRect().top+window.pageYOffset)),Number.isInteger(e)&&(e={top:e-i,behavior:"smooth"}),typeof e!="object")throw Error("Unsupported $scroll target: ",r);Object.assign(e,o),window.scroll(e)})}function B(n){let e=(o,r)=>{if(r[0].length<=o.length)return o;let i="\u2026";return typeof r[2]!="undefined"&&(i=r[2]),Object.prototype.hasOwnProperty.call(r[1],"ellipsis")&&(i=r[1].ellipsis),o+i};n.magic("truncate",()=>function(...o){return typeof o[0]!="string"||!o[1]?o[0]:typeof o[1]!="object"?e(o[0].slice(0,o[1]),o):Object.prototype.hasOwnProperty.call(o[1],"words")&&o[1].words?e(o[0].split(" ").splice(0,o[1].words).join(" "),o):Object.prototype.hasOwnProperty.call(o[1],"characters")&&o[1].characters?e(o[0].slice(0,o[1].characters),o):o[0]})}function L(n){n.magic("dbg",e=>function(...o){let r=o.map(i=>n.raw(i));console.log(...r)})}function x(n){let e=n.reactive({screensize:window.innerWidth}),o={xs:0,sm:640,md:768,lg:1024,xl:1280,"2xl":1536},r=window.AlpineMagicHelpersConfig&&window.AlpineMagicHelpersConfig.breakpoints?window.AlpineMagicHelpersConfig.breakpoints:o,i;window.addEventListener("resize",()=>{clearTimeout(i),i=setTimeout(()=>{e.screensize=window.innerWidth},150)}),n.magic("screen",f=>u=>{let c=e.screensize;if(Number.isInteger(u))return u<=c;if(r[u]===void 0)throw Error("Undefined $screen property: "+u+". Supported properties: "+Object.keys(r).join(", "));return r[u]<=c})}function P(n){n.magic("interval",()=>function(...e){if(typeof e[0]!="function")return e[0];let o=e[1],r=0,i=!1;typeof e[1]=="object"&&(Object.prototype.hasOwnProperty.call(e[1],"timer")&&(o=e[1].timer),Object.prototype.hasOwnProperty.call(e[1],"delay")&&(r=e[1].delay),Object.prototype.hasOwnProperty.call(e[1],"forceInterval")&&(i=e[1].forceInterval));let f=null,u=!0,c=()=>{let g=u?o+r:o;u=!1,f=setTimeout(()=>{e[0].call(this),i?c():requestAnimationFrame(c)},g)};n.effect(()=>{this.autoIntervalTest==null||this.autoIntervalTest?i?c():requestAnimationFrame(c):clearTimeout(f)})})}function C(n){j(n),X(n),B(n),L(n),x(n),P(n)}document.addEventListener("alpine:initializing",()=>{C(window.Alpine)});})(); diff --git a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js deleted file mode 100644 index 5a2d18be..00000000 --- a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js +++ /dev/null @@ -1,15 +0,0 @@ -(()=>{var _=["input","select","textarea","a[href]","button","[tabindex]:not(slot)","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details"],k=_.join(","),K=typeof Element>"u",N=K?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,B=!K&&Element.prototype.getRootNode?function(i){return i.getRootNode()}:function(i){return i.ownerDocument},V=function(e,t,a){var n=Array.prototype.slice.apply(e.querySelectorAll(k));return t&&N.call(e,k)&&n.unshift(e),n=n.filter(a),n},$=function i(e,t,a){for(var n=[],r=Array.from(e);r.length;){var s=r.shift();if(s.tagName==="SLOT"){var l=s.assignedElements(),m=l.length?l:s.children,p=i(m,!0,a);a.flatten?n.push.apply(n,p):n.push({scope:s,candidates:p})}else{var v=N.call(s,k);v&&a.filter(s)&&(t||!e.includes(s))&&n.push(s);var h=s.shadowRoot||typeof a.getShadowRoot=="function"&&a.getShadowRoot(s),y=!a.shadowRootFilter||a.shadowRootFilter(s);if(h&&y){var w=i(h===!0?s.children:h.children,!0,a);a.flatten?n.push.apply(n,w):n.push({scope:s,candidates:w})}else r.unshift.apply(r,s.children)}}return n},Y=function(e,t){return e.tabIndex<0&&(t||/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||e.isContentEditable)&&isNaN(parseInt(e.getAttribute("tabindex"),10))?0:e.tabIndex},se=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},Z=function(e){return e.tagName==="INPUT"},ce=function(e){return Z(e)&&e.type==="hidden"},le=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(a){return a.tagName==="SUMMARY"});return t},fe=function(e,t){for(var a=0;asummary:first-of-type"),s=r?e.parentElement:e;if(N.call(s,"details:not([open]) *"))return!0;var l=B(e).host,m=l?.ownerDocument.contains(l)||e.ownerDocument.contains(e);if(!a||a==="full"){if(typeof n=="function"){for(var p=e;e;){var v=e.parentElement,h=B(e);if(v&&!v.shadowRoot&&n(v)===!0)return W(e);e.assignedSlot?e=e.assignedSlot:!v&&h!==e.ownerDocument?e=h.host:e=v}e=p}if(m)return!e.getClientRects().length}else if(a==="non-zero-area")return W(e);return!1},pe=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var a=0;a=0)},me=function i(e){var t=[],a=[];return e.forEach(function(n,r){var s=!!n.scope,l=s?n.scope:n,m=Y(l,s),p=s?i(n.candidates):l;m===0?s?t.push.apply(t,p):t.push(l):a.push({documentOrder:r,tabIndex:m,item:n,isScope:s,content:p})}),a.sort(se).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},z=function(e,t){t=t||{};var a;return t.getShadowRoot?a=$([e],t.includeContainer,{filter:G.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:ge}):a=V(e,t.includeContainer,G.bind(null,t)),me(a)},x=function(e,t){t=t||{};var a;return t.getShadowRoot?a=$([e],t.includeContainer,{filter:I.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):a=V(e,t.includeContainer,I.bind(null,t)),a},A=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return N.call(e,k)===!1?!1:G(t,e)},ye=_.concat("iframe").join(","),R=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return N.call(e,ye)===!1?!1:I(t,e)};function Q(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(i);e&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(i,n).enumerable})),t.push.apply(t,a)}return t}function X(i){for(var e=1;e0){var a=i[i.length-1];a!==t&&a.pause()}var n=i.indexOf(t);n===-1||i.splice(n,1),i.push(t)},deactivateTrap:function(t){var a=i.indexOf(t);a!==-1&&i.splice(a,1),i.length>0&&i[i.length-1].unpause()}}}(),Te=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},Fe=function(e){return e.key==="Escape"||e.key==="Esc"||e.keyCode===27},Se=function(e){return e.key==="Tab"||e.keyCode===9},ee=function(e){return setTimeout(e,0)},te=function(e,t){var a=-1;return e.every(function(n,r){return t(n)?(a=r,!1):!0}),a},O=function(e){for(var t=arguments.length,a=new Array(t>1?t-1:0),n=1;n1?c-1:0),f=1;f=0)o=a.activeElement;else{var u=r.tabbableGroups[0],c=u&&u.firstTabbableNode;o=c||p("fallbackFocus")}if(!o)throw new Error("Your focus-trap needs to have at least one focusable element");return o},h=function(){if(r.containerGroups=r.containers.map(function(o){var u=z(o,n.tabbableOptions),c=x(o,n.tabbableOptions);return{container:o,tabbableNodes:u,focusableNodes:c,firstTabbableNode:u.length>0?u[0]:null,lastTabbableNode:u.length>0?u[u.length-1]:null,nextTabbableNode:function(f){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,F=c.findIndex(function(E){return E===f});if(!(F<0))return g?c.slice(F+1).find(function(E){return A(E,n.tabbableOptions)}):c.slice(0,F).reverse().find(function(E){return A(E,n.tabbableOptions)})}}}),r.tabbableGroups=r.containerGroups.filter(function(o){return o.tabbableNodes.length>0}),r.tabbableGroups.length<=0&&!p("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times")},y=function d(o){if(o!==!1&&o!==a.activeElement){if(!o||!o.focus){d(v());return}o.focus({preventScroll:!!n.preventScroll}),r.mostRecentlyFocusedNode=o,Te(o)&&o.select()}},w=function(o){var u=p("setReturnFocus",o);return u||(u===!1?!1:o)},S=function(o){var u=L(o);if(!(m(u)>=0)){if(O(n.clickOutsideDeactivates,o)){s.deactivate({returnFocus:n.returnFocusOnDeactivate&&!R(u,n.tabbableOptions)});return}O(n.allowOutsideClick,o)||o.preventDefault()}},D=function(o){var u=L(o),c=m(u)>=0;c||u instanceof Document?c&&(r.mostRecentlyFocusedNode=u):(o.stopImmediatePropagation(),y(r.mostRecentlyFocusedNode||v()))},T=function(o){var u=L(o);h();var c=null;if(r.tabbableGroups.length>0){var b=m(u),f=b>=0?r.containerGroups[b]:void 0;if(b<0)o.shiftKey?c=r.tabbableGroups[r.tabbableGroups.length-1].lastTabbableNode:c=r.tabbableGroups[0].firstTabbableNode;else if(o.shiftKey){var g=te(r.tabbableGroups,function(P){var j=P.firstTabbableNode;return u===j});if(g<0&&(f.container===u||R(u,n.tabbableOptions)&&!A(u,n.tabbableOptions)&&!f.nextTabbableNode(u,!1))&&(g=b),g>=0){var F=g===0?r.tabbableGroups.length-1:g-1,E=r.tabbableGroups[F];c=E.lastTabbableNode}}else{var C=te(r.tabbableGroups,function(P){var j=P.lastTabbableNode;return u===j});if(C<0&&(f.container===u||R(u,n.tabbableOptions)&&!A(u,n.tabbableOptions)&&!f.nextTabbableNode(u))&&(C=b),C>=0){var oe=C===r.tabbableGroups.length-1?0:C+1,ue=r.tabbableGroups[oe];c=ue.firstTabbableNode}}}else c=p("fallbackFocus");c&&(o.preventDefault(),y(c))},M=function(o){if(Fe(o)&&O(n.escapeDeactivates,o)!==!1){o.preventDefault(),s.deactivate();return}if(Se(o)){T(o);return}},q=function(o){var u=L(o);m(u)>=0||O(n.clickOutsideDeactivates,o)||O(n.allowOutsideClick,o)||(o.preventDefault(),o.stopImmediatePropagation())},H=function(){if(r.active)return J.activateTrap(s),r.delayInitialFocusTimer=n.delayInitialFocus?ee(function(){y(v())}):y(v()),a.addEventListener("focusin",D,!0),a.addEventListener("mousedown",S,{capture:!0,passive:!1}),a.addEventListener("touchstart",S,{capture:!0,passive:!1}),a.addEventListener("click",q,{capture:!0,passive:!1}),a.addEventListener("keydown",M,{capture:!0,passive:!1}),s},U=function(){if(r.active)return a.removeEventListener("focusin",D,!0),a.removeEventListener("mousedown",S,!0),a.removeEventListener("touchstart",S,!0),a.removeEventListener("click",q,!0),a.removeEventListener("keydown",M,!0),s};return s={get active(){return r.active},get paused(){return r.paused},activate:function(o){if(r.active)return this;var u=l(o,"onActivate"),c=l(o,"onPostActivate"),b=l(o,"checkCanFocusTrap");b||h(),r.active=!0,r.paused=!1,r.nodeFocusedBeforeActivation=a.activeElement,u&&u();var f=function(){b&&h(),H(),c&&c()};return b?(b(r.containers.concat()).then(f,f),this):(f(),this)},deactivate:function(o){if(!r.active)return this;var u=X({onDeactivate:n.onDeactivate,onPostDeactivate:n.onPostDeactivate,checkCanReturnFocus:n.checkCanReturnFocus},o);clearTimeout(r.delayInitialFocusTimer),r.delayInitialFocusTimer=void 0,U(),r.active=!1,r.paused=!1,J.deactivateTrap(s);var c=l(u,"onDeactivate"),b=l(u,"onPostDeactivate"),f=l(u,"checkCanReturnFocus"),g=l(u,"returnFocus","returnFocusOnDeactivate");c&&c();var F=function(){ee(function(){g&&y(w(r.nodeFocusedBeforeActivation)),b&&b()})};return g&&f?(f(w(r.nodeFocusedBeforeActivation)).then(F,F),this):(F(),this)},pause:function(){return r.paused||!r.active?this:(r.paused=!0,U(),this)},unpause:function(){return!r.paused||!r.active?this:(r.paused=!1,h(),H(),this)},updateContainerElements:function(o){var u=[].concat(o).filter(Boolean);return r.containers=u.map(function(c){return typeof c=="string"?a.querySelector(c):c}),r.active&&h(),this}},s.updateContainerElements(e),s};function ne(i){let e,t;window.addEventListener("focusin",()=>{e=t,t=document.activeElement}),i.magic("focus",a=>{let n=a;return{__noscroll:!1,__wrapAround:!1,within(r){return n=r,this},withoutScrolling(){return this.__noscroll=!0,this},noscroll(){return this.__noscroll=!0,this},withWrapAround(){return this.__wrapAround=!0,this},wrap(){return this.withWrapAround()},focusable(r){return R(r)},previouslyFocused(){return e},lastFocused(){return e},focused(){return t},focusables(){return Array.isArray(n)?n:x(n,{displayCheck:"none"})},all(){return this.focusables()},isFirst(r){let s=this.all();return s[0]&&s[0].isSameNode(r)},isLast(r){let s=this.all();return s.length&&s.slice(-1)[0].isSameNode(r)},getFirst(){return this.all()[0]},getLast(){return this.all().slice(-1)[0]},getNext(){let r=this.all(),s=document.activeElement;if(r.indexOf(s)!==-1)return this.__wrapAround&&r.indexOf(s)===r.length-1?r[0]:r[r.indexOf(s)+1]},getPrevious(){let r=this.all(),s=document.activeElement;if(r.indexOf(s)!==-1)return this.__wrapAround&&r.indexOf(s)===0?r.slice(-1)[0]:r[r.indexOf(s)-1]},first(){this.focus(this.getFirst())},last(){this.focus(this.getLast())},next(){this.focus(this.getNext())},previous(){this.focus(this.getPrevious())},prev(){return this.previous()},focus(r){r&&setTimeout(()=>{r.hasAttribute("tabindex")||r.setAttribute("tabindex","0"),r.focus({preventScroll:this.__noscroll})})}}}),i.directive("trap",i.skipDuringClone((a,{expression:n,modifiers:r},{effect:s,evaluateLater:l,cleanup:m})=>{let p=l(n),v=!1,h={escapeDeactivates:!1,allowOutsideClick:!0,fallbackFocus:()=>a};if(r.includes("noautofocus"))h.initialFocus=!1;else{let T=a.querySelector("[autofocus]");T&&(h.initialFocus=T)}let y=re(a,h),w=()=>{},S=()=>{},D=()=>{w(),w=()=>{},S(),S=()=>{},y.deactivate({returnFocus:!r.includes("noreturn")})};s(()=>p(T=>{v!==T&&(T&&!v&&(r.includes("noscroll")&&(S=Ee()),r.includes("inert")&&(w=ae(a)),setTimeout(()=>{y.activate()},15)),!T&&v&&D(),v=!!T)})),m(D)},(a,{expression:n,modifiers:r},{evaluate:s})=>{r.includes("inert")&&s(n)&&ae(a)}))}function ae(i){let e=[];return ie(i,t=>{let a=t.hasAttribute("aria-hidden");t.setAttribute("aria-hidden","true"),e.push(()=>a||t.removeAttribute("aria-hidden"))}),()=>{for(;e.length;)e.pop()()}}function ie(i,e){i.isSameNode(document.body)||!i.parentNode||Array.from(i.parentNode.children).forEach(t=>{t.isSameNode(i)?ie(i.parentNode,e):e(t)})}function Ee(){let i=document.documentElement.style.overflow,e=document.documentElement.style.paddingRight,t=window.innerWidth-document.documentElement.clientWidth;return document.documentElement.style.overflow="hidden",document.documentElement.style.paddingRight=`${t}px`,()=>{document.documentElement.style.overflow=i,document.documentElement.style.paddingRight=e}}document.addEventListener("alpine:init",()=>{window.Alpine.plugin(ne)});})(); -/*! Bundled license information: - -tabbable/dist/index.esm.js: - (*! - * tabbable 5.3.3 - * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE - *) - -focus-trap/dist/focus-trap.esm.js: - (*! - * focus-trap 6.9.4 - * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE - *) -*/ diff --git a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/intersect@3.x.x/dist/cdn.min.js b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/intersect@3.x.x/dist/cdn.min.js deleted file mode 100644 index 2342257f..00000000 --- a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/intersect@3.x.x/dist/cdn.min.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{function o(e){e.directive("intersect",e.skipDuringClone((t,{value:i,expression:l,modifiers:n},{evaluateLater:r,cleanup:c})=>{let s=r(l),a={rootMargin:x(n),threshold:f(n)},u=new IntersectionObserver(d=>{d.forEach(h=>{h.isIntersecting!==(i==="leave")&&(s(),n.includes("once")&&u.disconnect())})},a);u.observe(t),c(()=>{u.disconnect()})}))}function f(e){if(e.includes("full"))return .99;if(e.includes("half"))return .5;if(!e.includes("threshold"))return 0;let t=e[e.indexOf("threshold")+1];return t==="100"?1:t==="0"?0:Number(`.${t}`)}function p(e){let t=e.match(/^(-?[0-9]+)(px|%)?$/);return t?t[1]+(t[2]||"px"):void 0}function x(e){let t="margin",i="0px 0px 0px 0px",l=e.indexOf(t);if(l===-1)return i;let n=[];for(let r=1;r<5;r++)n.push(p(e[l+r]||""));return n=n.filter(r=>r!==void 0),n.length?n.join(" ").trim():i}document.addEventListener("alpine:init",()=>{window.Alpine.plugin(o)});})(); diff --git a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/purecss@3.0.0/build/base-min.css b/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/purecss@3.0.0/build/base-min.css deleted file mode 100644 index df4fbc05..00000000 --- a/build/lib/exo/tinychat/static/cdn.jsdelivr.net/npm/purecss@3.0.0/build/base-min.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! -Pure v3.0.0 -Copyright 2013 Yahoo! -Licensed under the BSD License. -https://github.com/pure-css/pure/blob/master/LICENSE -*/ -/*! -normalize.css v | MIT License | https://necolas.github.io/normalize.css/ -Copyright (c) Nicolas Gallagher and Jonathan Neal -*/ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:sans-serif}.hidden,[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block} \ No newline at end of file diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css deleted file mode 100644 index 45072b30..00000000 --- a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,0));transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} - -.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-table-cells-column-lock:before{content:"\e678"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-table-cells-row-lock:before{content:"\e67a"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"} -.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-jxl:before{content:"\e67b"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before,.fa-square-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-web-awesome:before{content:"\e682"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-square-web-awesome-stroke:before{content:"\e684"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-square-upwork:before{content:"\e67c"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-square-web-awesome:before{content:"\e683"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-bluesky:before{content:"\e671"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.ttf b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.ttf deleted file mode 100644 index 1fbb1f7c32d46f5dcb89a50e10d00878ed43f1a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209128 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%0AUSgWHQiFZ4^`_co**CW&|kdjzuG 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

O#Re#lfxr>sz;}@f8bqwz1up1^t)%zofq!AG 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

xA$6E^?#w4)r)%Sw3|NzgKHve*eJ-FKmx(duR9N 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 JOba38zW{E)cm@Cf diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.woff2 b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.woff2 deleted file mode 100644 index 5d28021697ff1f32507b1bcbcbf9e6a41d0ac99f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117852 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%0DxnTep24BZG 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 G?NiJ&y^c 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 Nb?&+EAr}Jx001#^dC~v? diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.ttf b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.ttf deleted file mode 100644 index 549d68dc023ff6e31b8774d784c2cfcc231e7976..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67860 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%0A>X@lH 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 KISZn8x&9A2X%@x+ diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.woff2 b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.woff2 deleted file mode 100644 index 18400d7fad27fc52cfbabbda495b871bd912d045..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25392 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 z 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 `GTC$U2 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 JQkvHO^gqOStd#%& diff --git a/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.woff2 b/build/lib/exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.woff2 deleted file mode 100644 index 758dd4f6070c7cb399334ae997ae9ff6523d3b55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156400 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 z 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 S`O1A00000000000000000000 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 S2VsmQO06}ypn7Xr@LvO5t4+KB diff --git a/build/lib/exo/tinychat/static/fonts.googleapis.com/css2 b/build/lib/exo/tinychat/static/fonts.googleapis.com/css2 deleted file mode 100644 index 82f55e83..00000000 --- a/build/lib/exo/tinychat/static/fonts.googleapis.com/css2 +++ /dev/null @@ -1,7 +0,0 @@ -@font-face { - font-family: 'Megrim'; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://fonts.gstatic.com/s/megrim/v16/46kulbz5WjvLqJZlbQ.ttf) format('truetype'); -} diff --git a/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js b/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js deleted file mode 100644 index 5d699ae6..00000000 --- a/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js +++ /dev/null @@ -1,1213 +0,0 @@ -/*! - Highlight.js v11.9.0 (git: f47103d4f1) - (c) 2006-2023 undefined and other contributors - License: BSD-3-Clause - */ -var hljs=function(){"use strict";function e(n){ -return n instanceof Map?n.clear=n.delete=n.set=()=>{ -throw Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=()=>{ -throw Error("set is read-only") -}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach((t=>{ -const a=n[t],i=typeof a;"object"!==i&&"function"!==i||Object.isFrozen(a)||e(a) -})),n}class n{constructor(e){ -void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} -ignoreMatch(){this.isMatchIgnored=!0}}function t(e){ -return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") -}function a(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n] -;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t}const i=e=>!!e.scope -;class r{constructor(e,n){ -this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){ -this.buffer+=t(e)}openNode(e){if(!i(e))return;const n=((e,{prefix:n})=>{ -if(e.startsWith("language:"))return e.replace("language:","language-") -;if(e.includes(".")){const t=e.split(".") -;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ") -}return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)} -closeNode(e){i(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ -this.buffer+=``}}const s=(e={})=>{const n={children:[]} -;return Object.assign(n,e),n};class o{constructor(){ -this.rootNode=s(),this.stack=[this.rootNode]}get top(){ -return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ -this.top.children.push(e)}openNode(e){const n=s({scope:e}) -;this.add(n),this.stack.push(n)}closeNode(){ -if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ -for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} -walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){ -return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n), -n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){ -"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ -o._collapse(e)})))}}class l extends o{constructor(e){super(),this.options=e} -addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){ -this.closeNode()}__addSublanguage(e,n){const t=e.root -;n&&(t.scope="language:"+n),this.add(t)}toHTML(){ -return new r(this,this.options).value()}finalize(){ -return this.closeAllNodes(),!0}}function c(e){ -return e?"string"==typeof e?e:e.source:null}function d(e){return b("(?=",e,")")} -function g(e){return b("(?:",e,")*")}function u(e){return b("(?:",e,")?")} -function b(...e){return e.map((e=>c(e))).join("")}function m(...e){const n=(e=>{ -const n=e[e.length-1] -;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} -})(e);return"("+(n.capture?"":"?:")+e.map((e=>c(e))).join("|")+")"} -function p(e){return RegExp(e.toString()+"|").exec("").length-1} -const _=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ -;function h(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t -;let a=c(e),i="";for(;a.length>0;){const e=_.exec(a);if(!e){i+=a;break} -i+=a.substring(0,e.index), -a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0], -"("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)} -const f="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",N="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",w="\\b(0b[01]+)",v={ -begin:"\\\\[\\s\\S]",relevance:0},O={scope:"string",begin:"'",end:"'", -illegal:"\\n",contains:[v]},k={scope:"string",begin:'"',end:'"',illegal:"\\n", -contains:[v]},x=(e,n,t={})=>{const i=a({scope:"comment",begin:e,end:n, -contains:[]},t);i.contains.push({scope:"doctag", -begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", -end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) -;const r=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) -;return i.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i -},M=x("//","$"),S=x("/\\*","\\*/"),A=x("#","$");var C=Object.freeze({ -__proto__:null,APOS_STRING_MODE:O,BACKSLASH_ESCAPE:v,BINARY_NUMBER_MODE:{ -scope:"number",begin:w,relevance:0},BINARY_NUMBER_RE:w,COMMENT:x, -C_BLOCK_COMMENT_MODE:S,C_LINE_COMMENT_MODE:M,C_NUMBER_MODE:{scope:"number", -begin:N,relevance:0},C_NUMBER_RE:N,END_SAME_AS_BEGIN:e=>Object.assign(e,{ -"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{ -n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:A,IDENT_RE:f, -MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+E,relevance:0}, -NUMBER_MODE:{scope:"number",begin:y,relevance:0},NUMBER_RE:y, -PHRASAL_WORDS_MODE:{ -begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ -},QUOTE_STRING_MODE:k,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/, -end:/\/[gimuy]*/,contains:[v,{begin:/\[/,end:/\]/,relevance:0,contains:[v]}]}, -RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", -SHEBANG:(e={})=>{const n=/^#![ ]*\// -;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n, -end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)}, -TITLE_MODE:{scope:"title",begin:f,relevance:0},UNDERSCORE_IDENT_RE:E, -UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0}});function T(e,n){ -"."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){ -void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){ -n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", -e.__beforeBegin=T,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, -void 0===e.relevance&&(e.relevance=0))}function I(e,n){ -Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function L(e,n){ -if(e.match){ -if(e.begin||e.end)throw Error("begin & end are not supported with match") -;e.begin=e.match,delete e.match}}function B(e,n){ -void 0===e.relevance&&(e.relevance=1)}const $=(e,n)=>{if(!e.beforeMatch)return -;if(e.starts)throw Error("beforeMatch cannot be used with starts") -;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n] -})),e.keywords=t.keywords,e.begin=b(t.beforeMatch,d(t.begin)),e.starts={ -relevance:0,contains:[Object.assign(t,{endsParent:!0})] -},e.relevance=0,delete t.beforeMatch -},z=["of","and","for","in","not","or","if","then","parent","list","value"],F="keyword" -;function U(e,n,t=F){const a=Object.create(null) -;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{ -Object.assign(a,U(e[t],n,t))})),a;function i(e,t){ -n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|") -;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){ -return n?Number(n):(e=>z.includes(e.toLowerCase()))(e)?0:1}const P={},K=e=>{ -console.error(e)},H=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{ -P[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),P[`${e}/${n}`]=!0) -},G=Error();function Z(e,n,{key:t}){let a=0;const i=e[t],r={},s={} -;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(n[e-1]) -;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function W(e){(e=>{ -e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, -delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ -_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope -}),(e=>{if(Array.isArray(e.begin)){ -if(e.skip||e.excludeBegin||e.returnBegin)throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), -G -;if("object"!=typeof e.beginScope||null===e.beginScope)throw K("beginScope must be object"), -G;Z(e,e.begin,{key:"beginScope"}),e.begin=h(e.begin,{joinWith:""})}})(e),(e=>{ -if(Array.isArray(e.end)){ -if(e.skip||e.excludeEnd||e.returnEnd)throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"), -G -;if("object"!=typeof e.endScope||null===e.endScope)throw K("endScope must be object"), -G;Z(e,e.end,{key:"endScope"}),e.end=h(e.end,{joinWith:""})}})(e)}function Q(e){ -function n(n,t){ -return RegExp(c(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":"")) -}class t{constructor(){ -this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} -addRule(e,n){ -n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]), -this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) -;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(h(e,{joinWith:"|" -}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex -;const n=this.matcherRe.exec(e);if(!n)return null -;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t] -;return n.splice(0,t),Object.assign(n,a)}}class i{constructor(){ -this.rules=[],this.multiRegexes=[], -this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ -if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t -;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))), -n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){ -return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){ -this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){ -const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex -;let t=n.exec(e) -;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{ -const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)} -return t&&(this.regexIndex+=t.position+1, -this.regexIndex===this.count&&this.considerAll()),t}} -if(e.compilerExtensions||(e.compilerExtensions=[]), -e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") -;return e.classNameAliases=a(e.classNameAliases||{}),function t(r,s){const o=r -;if(r.isCompiled)return o -;[R,L,W,$].forEach((e=>e(r,s))),e.compilerExtensions.forEach((e=>e(r,s))), -r.__beforeBegin=null,[D,I,B].forEach((e=>e(r,s))),r.isCompiled=!0;let l=null -;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords), -l=r.keywords.$pattern, -delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=U(r.keywords,e.case_insensitive)), -o.keywordPatternRe=n(l,!0), -s&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r.end=/\B|\b/), -r.end&&(o.endRe=n(o.end)), -o.terminatorEnd=c(o.end)||"",r.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)), -r.illegal&&(o.illegalRe=n(r.illegal)), -r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>a(e,{ -variants:null},n)))),e.cachedVariants?e.cachedVariants:X(e)?a(e,{ -starts:e.starts?a(e.starts):null -}):Object.isFrozen(e)?a(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o) -})),r.starts&&t(r.starts,s),o.matcher=(e=>{const n=new i -;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin" -}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end" -}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function X(e){ -return!!e&&(e.endsWithParent||X(e.starts))}class V extends Error{ -constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}} -const J=t,Y=a,ee=Symbol("nomatch"),ne=t=>{ -const a=Object.create(null),i=Object.create(null),r=[];let s=!0 -;const o="Could not find the language '{}', did you forget to load/include a language module?",c={ -disableAutodetect:!0,name:"Plain text",contains:[]};let p={ -ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, -languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", -cssSelector:"pre code",languages:null,__emitter:l};function _(e){ -return p.noHighlightRe.test(e)}function h(e,n,t){let a="",i="" -;"object"==typeof n?(a=e, -t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."), -q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), -i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};x("before:highlight",r) -;const s=r.result?r.result:f(r.language,r.code,t) -;return s.code=r.code,x("after:highlight",s),s}function f(e,t,i,r){ -const l=Object.create(null);function c(){if(!x.keywords)return void S.addText(A) -;let e=0;x.keywordPatternRe.lastIndex=0;let n=x.keywordPatternRe.exec(A),t="" -;for(;n;){t+=A.substring(e,n.index) -;const i=w.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,x.keywords[a]);if(r){ -const[e,a]=r -;if(S.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(C+=a),e.startsWith("_"))t+=n[0];else{ -const t=w.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0] -;e=x.keywordPatternRe.lastIndex,n=x.keywordPatternRe.exec(A)}var a -;t+=A.substring(e),S.addText(t)}function d(){null!=x.subLanguage?(()=>{ -if(""===A)return;let e=null;if("string"==typeof x.subLanguage){ -if(!a[x.subLanguage])return void S.addText(A) -;e=f(x.subLanguage,A,!0,M[x.subLanguage]),M[x.subLanguage]=e._top -}else e=E(A,x.subLanguage.length?x.subLanguage:null) -;x.relevance>0&&(C+=e.relevance),S.__addSublanguage(e._emitter,e.language) -})():c(),A=""}function g(e,n){ -""!==e&&(S.startScope(n),S.addText(e),S.endScope())}function u(e,n){let t=1 -;const a=n.length-1;for(;t<=a;){if(!e._emit[t]){t++;continue} -const a=w.classNameAliases[e[t]]||e[t],i=n[t];a?g(i,a):(A=i,c(),A=""),t++}} -function b(e,n){ -return e.scope&&"string"==typeof e.scope&&S.openNode(w.classNameAliases[e.scope]||e.scope), -e.beginScope&&(e.beginScope._wrap?(g(A,w.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), -A=""):e.beginScope._multi&&(u(e.beginScope,n),A="")),x=Object.create(e,{parent:{ -value:x}}),x}function m(e,t,a){let i=((e,n)=>{const t=e&&e.exec(n) -;return t&&0===t.index})(e.endRe,a);if(i){if(e["on:end"]){const a=new n(e) -;e["on:end"](t,a),a.isMatchIgnored&&(i=!1)}if(i){ -for(;e.endsParent&&e.parent;)e=e.parent;return e}} -if(e.endsWithParent)return m(e.parent,t,a)}function _(e){ -return 0===x.matcher.regexIndex?(A+=e[0],1):(D=!0,0)}function h(e){ -const n=e[0],a=t.substring(e.index),i=m(x,e,a);if(!i)return ee;const r=x -;x.endScope&&x.endScope._wrap?(d(), -g(n,x.endScope._wrap)):x.endScope&&x.endScope._multi?(d(), -u(x.endScope,e)):r.skip?A+=n:(r.returnEnd||r.excludeEnd||(A+=n), -d(),r.excludeEnd&&(A=n));do{ -x.scope&&S.closeNode(),x.skip||x.subLanguage||(C+=x.relevance),x=x.parent -}while(x!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:n.length} -let y={};function N(a,r){const o=r&&r[0];if(A+=a,null==o)return d(),0 -;if("begin"===y.type&&"end"===r.type&&y.index===r.index&&""===o){ -if(A+=t.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`) -;throw n.languageName=e,n.badRule=y.rule,n}return 1} -if(y=r,"begin"===r.type)return(e=>{ -const t=e[0],a=e.rule,i=new n(a),r=[a.__beforeBegin,a["on:begin"]] -;for(const n of r)if(n&&(n(e,i),i.isMatchIgnored))return _(t) -;return a.skip?A+=t:(a.excludeBegin&&(A+=t), -d(),a.returnBegin||a.excludeBegin||(A=t)),b(a,e),a.returnBegin?0:t.length})(r) -;if("illegal"===r.type&&!i){ -const e=Error('Illegal lexeme "'+o+'" for mode "'+(x.scope||"")+'"') -;throw e.mode=x,e}if("end"===r.type){const e=h(r);if(e!==ee)return e} -if("illegal"===r.type&&""===o)return 1 -;if(R>1e5&&R>3*r.index)throw Error("potential infinite loop, way more iterations than matches") -;return A+=o,o.length}const w=v(e) -;if(!w)throw K(o.replace("{}",e)),Error('Unknown language: "'+e+'"') -;const O=Q(w);let k="",x=r||O;const M={},S=new p.__emitter(p);(()=>{const e=[] -;for(let n=x;n!==w;n=n.parent)n.scope&&e.unshift(n.scope) -;e.forEach((e=>S.openNode(e)))})();let A="",C=0,T=0,R=0,D=!1;try{ -if(w.__emitTokens)w.__emitTokens(t,S);else{for(x.matcher.considerAll();;){ -R++,D?D=!1:x.matcher.considerAll(),x.matcher.lastIndex=T -;const e=x.matcher.exec(t);if(!e)break;const n=N(t.substring(T,e.index),e) -;T=e.index+n}N(t.substring(T))}return S.finalize(),k=S.toHTML(),{language:e, -value:k,relevance:C,illegal:!1,_emitter:S,_top:x}}catch(n){ -if(n.message&&n.message.includes("Illegal"))return{language:e,value:J(t), -illegal:!0,relevance:0,_illegalBy:{message:n.message,index:T, -context:t.slice(T-100,T+100),mode:n.mode,resultSoFar:k},_emitter:S};if(s)return{ -language:e,value:J(t),illegal:!1,relevance:0,errorRaised:n,_emitter:S,_top:x} -;throw n}}function E(e,n){n=n||p.languages||Object.keys(a);const t=(e=>{ -const n={value:J(e),illegal:!1,relevance:0,_top:c,_emitter:new p.__emitter(p)} -;return n._emitter.addText(e),n})(e),i=n.filter(v).filter(k).map((n=>f(n,e,!1))) -;i.unshift(t);const r=i.sort(((e,n)=>{ -if(e.relevance!==n.relevance)return n.relevance-e.relevance -;if(e.language&&n.language){if(v(e.language).supersetOf===n.language)return 1 -;if(v(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,l=s -;return l.secondBest=o,l}function y(e){let n=null;const t=(e=>{ -let n=e.className+" ";n+=e.parentNode?e.parentNode.className:"" -;const t=p.languageDetectRe.exec(n);if(t){const n=v(t[1]) -;return n||(H(o.replace("{}",t[1])), -H("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"} -return n.split(/\s+/).find((e=>_(e)||v(e)))})(e);if(_(t))return -;if(x("before:highlightElement",{el:e,language:t -}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e) -;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), -console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), -console.warn("The element with unescaped HTML:"), -console.warn(e)),p.throwUnescapedHTML))throw new V("One of your code blocks includes unescaped HTML.",e.innerHTML) -;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a) -;e.innerHTML=r.value,e.dataset.highlighted="yes",((e,n,t)=>{const a=n&&i[n]||t -;e.classList.add("hljs"),e.classList.add("language-"+a) -})(e,t,r.language),e.result={language:r.language,re:r.relevance, -relevance:r.relevance},r.secondBest&&(e.secondBest={ -language:r.secondBest.language,relevance:r.secondBest.relevance -}),x("after:highlightElement",{el:e,result:r,text:a})}let N=!1;function w(){ -"loading"!==document.readyState?document.querySelectorAll(p.cssSelector).forEach(y):N=!0 -}function v(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]} -function O(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ -i[e.toLowerCase()]=n}))}function k(e){const n=v(e) -;return n&&!n.disableAutodetect}function x(e,n){const t=e;r.forEach((e=>{ -e[t]&&e[t](n)}))} -"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ -N&&w()}),!1),Object.assign(t,{highlight:h,highlightAuto:E,highlightAll:w, -highlightElement:y, -highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"), -q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=Y(p,e)}, -initHighlighting:()=>{ -w(),q("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, -initHighlightingOnLoad:()=>{ -w(),q("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") -},registerLanguage:(e,n)=>{let i=null;try{i=n(t)}catch(n){ -if(K("Language definition for '{}' could not be registered.".replace("{}",e)), -!s)throw n;K(n),i=c} -i.name||(i.name=e),a[e]=i,i.rawDefinition=n.bind(null,t),i.aliases&&O(i.aliases,{ -languageName:e})},unregisterLanguage:e=>{delete a[e] -;for(const n of Object.keys(i))i[n]===e&&delete i[n]}, -listLanguages:()=>Object.keys(a),getLanguage:v,registerAliases:O, -autoDetection:k,inherit:Y,addPlugin:e=>{(e=>{ -e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{ -e["before:highlightBlock"](Object.assign({block:n.el},n)) -}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{ -e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)}, -removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{ -s=!1},t.safeMode=()=>{s=!0},t.versionString="11.9.0",t.regex={concat:b, -lookahead:d,either:m,optional:u,anyNumberOfTimes:g} -;for(const n in C)"object"==typeof C[n]&&e(C[n]);return Object.assign(t,C),t -},te=ne({});te.newInstance=()=>ne({});var ae=te;const ie=e=>({IMPORTANT:{ -scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{ -scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/}, -FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/}, -ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", -contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ -scope:"number", -begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", -relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/} -}),re=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],se=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],oe=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],le=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ce=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),de=oe.concat(le) -;var ge="[0-9](_*[0-9])*",ue=`\\.(${ge})`,be="[0-9a-fA-F](_*[0-9a-fA-F])*",me={ -className:"number",variants:[{ -begin:`(\\b(${ge})((${ue})|\\.)?|(${ue}))[eE][+-]?(${ge})[fFdD]?\\b`},{ -begin:`\\b(${ge})((${ue})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ -begin:`(${ue})[fFdD]?\\b`},{begin:`\\b(${ge})[fFdD]\\b`},{ -begin:`\\b0[xX]((${be})\\.?|(${be})?\\.(${be}))[pP][+-]?(${ge})[fFdD]?\\b`},{ -begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${be})[lL]?\\b`},{ -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], -relevance:0};function pe(e,n,t){return-1===t?"":e.replace(n,(a=>pe(e,n,t-1)))} -const _e="[A-Za-z$_][0-9A-Za-z$_]*",he=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],fe=["true","false","null","undefined","NaN","Infinity"],Ee=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ye=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ne=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],we=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],ve=[].concat(Ne,Ee,ye) -;function Oe(e){const n=e.regex,t=_e,a={begin:/<[A-Za-z0-9\\._:-]+/, -end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ -const t=e[0].length+e.index,a=e.input[t] -;if("<"===a||","===a)return void n.ignoreMatch();let i -;">"===a&&(((e,{after:n})=>{const t="",M={ -match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(x)], -keywords:"async",className:{1:"keyword",3:"title.function"},contains:[f]} -;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{ -PARAMS_CONTAINS:h,CLASS_REFERENCE:y},illegal:/#(?![$_A-z])/, -contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ -label:"use_strict",className:"meta",relevance:10, -begin:/^\s*['"]use (strict|asm)['"]/ -},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,m,{match:/\$\d+/},l,y,{ -className:"attr",begin:t+n.lookahead(":"),relevance:0},M,{ -begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", -keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{ -className:"function",begin:x,returnBegin:!0,end:"\\s*=>",contains:[{ -className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{ -className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, -excludeEnd:!0,keywords:i,contains:h}]}]},{begin:/,/,relevance:0},{match:/\s+/, -relevance:0},{variants:[{begin:"<>",end:""},{ -match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin, -"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{ -begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},N,{ -beginKeywords:"while if switch catch for"},{ -begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", -returnBegin:!0,label:"func.def",contains:[f,e.inherit(e.TITLE_MODE,{begin:t, -className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+t, -relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, -contains:[f]},w,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, -className:"variable.constant"},E,k,{match:/\$[(.]/}]}} -const ke=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),xe=["Protocol","Type"].map(ke),Me=["init","self"].map(ke),Se=["Any","Self"],Ae=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ce=["false","nil","true"],Te=["assignment","associativity","higherThan","left","lowerThan","none","right"],Re=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],De=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Ie=m(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Le=m(Ie,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Be=b(Ie,Le,"*"),$e=m(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),ze=m($e,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Fe=b($e,ze,"*"),Ue=b(/[A-Z]/,ze,"*"),je=["attached","autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,Fe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],Pe=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] -;var Ke=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={ -begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]} -;Object.assign(t,{className:"variable",variants:[{ -begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={ -className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={ -begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, -end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/, -contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(s);const o={begin:/\$?\(\(/, -end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] -},l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 -}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, -contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ -name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, -keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"], -literal:["true","false"], -built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] -},contains:[l,e.SHEBANG(),c,o,e.HASH_COMMENT_MODE,r,{match:/(\/[a-z._-]+)+/},s,{ -match:/\\"/},{className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}}, -grmr_c:e=>{const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}] -}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={ -className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ -match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{ -begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", -end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ -className:"number",variants:[{begin:"\\b(0b[01']+)"},{ -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" -},{ -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" -}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ -keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" -},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{ -className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={ -className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0 -},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={ -keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], -type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"], -literal:"true false NULL", -built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" -},b=[c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],m={variants:[{begin:/=/,end:/;/},{ -begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], -keywords:u,contains:b.concat([{begin:/\(/,end:/\)/,keywords:u, -contains:b.concat(["self"]),relevance:0}]),relevance:0},p={ -begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, -keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{ -begin:g,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})], -relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/, -keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/, -end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s] -}]},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u, -disableAutodetect:!0,illegal:"=]/,contains:[{ -beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c, -strings:o,keywords:u}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{ -contains:[{begin:/\\\n/}] -}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={ -className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{ -begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", -end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ -className:"number",variants:[{begin:"\\b(0b[01']+)"},{ -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" -},{ -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" -}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ -keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" -},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{ -className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={ -className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0 -},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={ -type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], -keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"], -literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"], -_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] -},b={className:"function.dispatch",relevance:0,keywords:{ -_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] -}, -begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/)) -},m=[b,c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{ -begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], -keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u, -contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function", -begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, -keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{ -begin:g,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{ -begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{ -className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0, -contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u, -relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]}] -},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++", -aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{ -match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], -className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={ -keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]), -built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], -literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{ -begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{ -begin:"\\b(0b[01']+)"},{ -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" -}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] -},r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/, -keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/, -end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ -},e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{ -begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/, -contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]}) -;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE], -o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{ -illegal:/\n/})];const g={variants:[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] -},u={begin:"<",end:">",contains:[{beginKeywords:"in out"},t] -},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={ -begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], -keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, -contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ -begin:"\x3c!--|--\x3e"},{begin:""}]}] -}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", -end:"$",keywords:{ -keyword:"if else elif endif define undef warning error line region endregion pragma checksum" -}},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, -illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" -},t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", -relevance:0,end:/[{;=]/,illegal:/[^\s:]/, -contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ -beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, -contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", -begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ -className:"string",begin:/"/,end:/"/}]},{ -beginKeywords:"new return throw await else",relevance:0},{className:"function", -begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, -end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ -beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", -relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, -contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params", -begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, -contains:[g,a,e.C_BLOCK_COMMENT_MODE] -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{ -const n=e.regex,t=ie(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{ -name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{ -keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"}, -contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/ -},t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0 -},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 -},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ -begin:":("+oe.join("|")+")"},{begin:":(:)?("+le.join("|")+")"}] -},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ce.join("|")+")\\b"},{ -begin:/:/,end:/[;}{]/, -contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{ -begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" -},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0, -excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]", -relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/ -},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{ -$pattern:/[a-z-]+/,keyword:"and or not only",attribute:se.join(" ")},contains:[{ -begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{ -className:"selector-tag",begin:"\\b("+re.join("|")+")\\b"}]}},grmr_diff:e=>{ -const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{ -className:"meta",relevance:10, -match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) -},{className:"comment",variants:[{ -begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/), -end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{ -className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, -end:/$/}]}},grmr_go:e=>{const n={ -keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"], -type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"], -literal:["true","false","iota","nil"], -built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"] -};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{const n=e.regex;return{name:"GraphQL",aliases:["gql"], -case_insensitive:!0,disableAutodetect:!1,keywords:{ -keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"], -literal:["true","false","null"]}, -contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ -scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation", -begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/, -end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{ -scope:"symbol",begin:n.concat(/[_A-Za-z][_0-9A-Za-z]*/,n.lookahead(/\s*:/)), -relevance:0}],illegal:[/[;<']/,/BEGIN/]}},grmr_ini:e=>{const n=e.regex,t={ -className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{ -begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/, -end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{ -begin:/\$\{(.*?)\}/}]},r={className:"literal", -begin:/\bon|off|true|false|yes|no\b/},s={className:"string", -contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{ -begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}] -},o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0 -},l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{ -name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, -contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{ -begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)), -className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{ -const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+pe("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={ -keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"], -literal:["false","true","null"], -type:["char","boolean","long","float","int","byte","short","double"], -built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{ -begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/, -end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} -;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/, -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, -relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ -begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/, -className:"string",contains:[e.BACKSLASH_ESCAPE] -},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ -match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{ -1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{ -begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type", -3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword", -3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ -beginKeywords:"new throw return else",relevance:0},{ -begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ -2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/, -end:/\)/,keywords:i,relevance:0, -contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,me,e.C_BLOCK_COMMENT_MODE] -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},me,r]}},grmr_javascript:Oe, -grmr_json:e=>{const n=["true","false","null"],t={scope:"literal", -beginKeywords:n.join(" ")};return{name:"JSON",keywords:{literal:n},contains:[{ -className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{ -match:/[{}[\],:]/,className:"punctuation",relevance:0 -},e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], -illegal:"\\S"}},grmr_kotlin:e=>{const n={ -keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", -built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", -literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" -},a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={ -className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", -variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'", -illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, -contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={ -className:"meta", -begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" -},o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, -end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}] -},l=me,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={ -variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, -contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g], -{name:"Kotlin",aliases:["kt","kts"],keywords:n, -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", -begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword", -begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", -begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$", -returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, -keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, -endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, -endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0 -},e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{ -begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{ -3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, -illegal:"extends implements",contains:[{ -beginKeywords:"public protected internal private constructor" -},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, -excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/, -excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env", -end:"$",illegal:"\n"},l]}},grmr_less:e=>{ -const n=ie(e),t=de,a="[\\w-]+",i="("+a+"|@\\{"+a+"\\})",r=[],s=[],o=e=>({ -className:"string",begin:"~?"+e+".*?"+e}),l=(e,n,t)=>({className:e,begin:n, -relevance:t}),c={$pattern:/[a-z-]+/,keyword:"and or not only", -attribute:se.join(" ")},d={begin:"\\(",end:"\\)",contains:s,keywords:c, -relevance:0} -;s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o("'"),o('"'),n.CSS_NUMBER_MODE,{ -begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]", -excludeEnd:!0} -},n.HEXCOLOR,d,l("variable","@@?"+a,10),l("variable","@\\{"+a+"\\}"),l("built_in","~?`[^`]*?`"),{ -className:"attribute",begin:a+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0 -},n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const g=s.concat({ -begin:/\{/,end:/\}/,contains:r}),u={beginKeywords:"when",endsWithParent:!0, -contains:[{beginKeywords:"and not"}].concat(s)},b={begin:i+"\\s*:", -returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/ -},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ce.join("|")+")\\b", -end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}] -},m={className:"keyword", -begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", -starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:s,relevance:0}},p={ -className:"variable",variants:[{begin:"@"+a+"\\s*:",relevance:15},{begin:"@"+a -}],starts:{end:"[;}]",returnEnd:!0,contains:g}},_={variants:[{ -begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0, -returnEnd:!0,illegal:"[<='$\"]",relevance:0, -contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,l("keyword","all\\b"),l("variable","@\\{"+a+"\\}"),{ -begin:"\\b("+re.join("|")+")\\b",className:"selector-tag" -},n.CSS_NUMBER_MODE,l("selector-tag",i,0),l("selector-id","#"+i),l("selector-class","\\."+i,0),l("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{ -className:"selector-pseudo",begin:":("+oe.join("|")+")"},{ -className:"selector-pseudo",begin:":(:)?("+le.join("|")+")"},{begin:/\(/, -end:/\)/,relevance:0,contains:g},{begin:"!important"},n.FUNCTION_DISPATCH]},h={ -begin:a+":(:)?"+`(${t.join("|")})`,returnBegin:!0,contains:[_]} -;return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,p,h,b,_,u,n.FUNCTION_DISPATCH), -{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}}, -grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"] -},i=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,t,{contains:[a],relevance:10 -})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE, -literal:"true false nil", -keyword:"and break do else elseif end for goto if in local not or repeat return then until while", -built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" -},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)", -contains:[e.inherit(e.TITLE_MODE,{ -begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", -begin:"\\(",endsWithParent:!0,contains:i}].concat(i) -},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", -begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={ -className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)", -contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{ -const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},t={ -variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{ -begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, -relevance:2},{ -begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), -relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ -begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ -},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, -returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", -excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", -end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[], -variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] -},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ -begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[] -}),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r) -;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o) -})),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ -className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{ -begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", -contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", -end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o, -end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ -begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ -begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", -contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ -begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ -className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ -className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}},grmr_objectivec:e=>{ -const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n, -keyword:["@interface","@class","@protocol","@implementation"]};return{ -name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"], -keywords:{"variable.language":["this","super"],$pattern:n, -keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"], -literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"], -built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"], -type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"] -},illegal:"/,end:/$/,illegal:"\\n" -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class", -begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t, -contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE, -relevance:0}]}},grmr_perl:e=>{const n=e.regex,t=/[dualxmsipngr]{0,12}/,a={ -$pattern:/[\w.]+/, -keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0" -},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/, -end:/\}/},s={variants:[{begin:/\$\d/},{ -begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])") -},{begin:/[$%@][^\s\w{]/,relevance:0}] -},o=[e.BACKSLASH_ESCAPE,i,s],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(e,a,i="\\1")=>{ -const r="\\1"===i?i:n.concat(i,a) -;return n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,t) -},d=(e,a,i)=>n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,t),g=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{ -endsWithParent:!0}),r,{className:"string",contains:o,variants:[{ -begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[", -end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{ -begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">", -relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'", -contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`", -contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{ -begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number", -begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", -relevance:0},{ -begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*", -keywords:"split return print reverse grep",relevance:0, -contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{ -begin:c("s|tr|y",n.either(...l,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{ -begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{ -className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{ -begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",n.either(...l,{capture:!0 -}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{ -begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub", -end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{ -begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$", -subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}] -}];return i.contains=g,r.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:a, -contains:g}},grmr_php:e=>{ -const n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,a=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),i=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r={ -scope:"variable",match:"\\$+"+a},s={scope:"subst",variants:[{begin:/\$\w+/},{ -begin:/\{\$/,end:/\}/}]},o=e.inherit(e.APOS_STRING_MODE,{illegal:null -}),l="[ \t\n]",c={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{ -illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(s)}),o,{ -begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/, -contains:e.QUOTE_STRING_MODE.contains.concat(s),"on:begin":(e,n)=>{ -n.data._beginMatch=e[1]||e[2]},"on:end":(e,n)=>{ -n.data._beginMatch!==e[1]&&n.ignoreMatch()}},e.END_SAME_AS_BEGIN({ -begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},d={scope:"number",variants:[{ -begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{ -begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{ -begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?" -}],relevance:0 -},g=["false","null","true"],u=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],b=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],m={ -keyword:u,literal:(e=>{const n=[];return e.forEach((e=>{ -n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase()) -})),n})(g),built_in:b},p=e=>e.map((e=>e.replace(/\|\d+$/,""))),_={variants:[{ -match:[/new/,n.concat(l,"+"),n.concat("(?!",p(b).join("\\b|"),"\\b)"),i],scope:{ -1:"keyword",4:"title.class"}}]},h=n.concat(a,"\\b(?!\\()"),f={variants:[{ -match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{2:"variable.constant" -}},{match:[/::/,/class/],scope:{2:"variable.language"}},{ -match:[i,n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{1:"title.class", -3:"variable.constant"}},{match:[i,n.concat("::",n.lookahead(/(?!class\b)/))], -scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class", -3:"variable.language"}}]},E={scope:"attr", -match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},y={relevance:0, -begin:/\(/,end:/\)/,keywords:m,contains:[E,r,f,e.C_BLOCK_COMMENT_MODE,c,d,_] -},N={relevance:0, -match:[/\b/,n.concat("(?!fn\\b|function\\b|",p(u).join("\\b|"),"|",p(b).join("\\b|"),"\\b)"),a,n.concat(l,"*"),n.lookahead(/(?=\()/)], -scope:{3:"title.function.invoke"},contains:[y]};y.contains.push(N) -;const w=[E,f,e.C_BLOCK_COMMENT_MODE,c,d,_];return{case_insensitive:!1, -keywords:m,contains:[{begin:n.concat(/#\[\s*/,i),beginScope:"meta",end:/]/, -endScope:"meta",keywords:{literal:g,keyword:["new","array"]},contains:[{ -begin:/\[/,end:/]/,keywords:{literal:g,keyword:["new","array"]}, -contains:["self",...w]},...w,{scope:"meta",match:i}] -},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{ -scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/, -keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE, -contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{ -begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{ -begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},r,N,f,{ -match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},_,{ -scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/, -excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use" -},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params", -begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:m, -contains:["self",r,f,e.C_BLOCK_COMMENT_MODE,c,d]}]},{scope:"class",variants:[{ -beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", -illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ -beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ -beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, -contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{ -beginKeywords:"use",relevance:0,end:";",contains:[{ -match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},c,d]} -},grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{ -begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*", -end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0 -},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null, -skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null, -contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text", -aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{ -const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={ -$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a, -built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], -literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], -type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] -},r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/, -end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={ -className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, -contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, -contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ -begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, -contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, -end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/, -relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ -begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, -end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, -contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, -contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] -},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,g="\\b|"+a.join("|"),u={ -className:"number",relevance:0,variants:[{ -begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`},{begin:`(${d})[jJ]?`},{ -begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{ -begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})` -},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${c})[jJ](?=${g})` -}]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i, -contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={ -className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/, -end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i, -contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{ -name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i, -illegal:/(<\/|\?)|=>/,contains:[r,u,{begin:/\bself\b/},{beginKeywords:"if", -relevance:0},l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{ -1:"keyword",3:"title.function"},contains:[m]},{variants:[{ -match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}], -scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{ -className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,m,l]}]}}, -grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta.prompt", -starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{ -begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{ -const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/) -;return{name:"R",keywords:{$pattern:t, -keyword:"function if in break next repeat else for while", -literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10", -built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm" -},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/, -starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)), -endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{ -scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0 -}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}] -}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE], -variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"', -relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{ -1:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"}, -match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{ -2:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"}, -match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{ -match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`", -contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{ -const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={ -"variable.constant":["__FILE__","__LINE__","__ENCODING__"], -"variable.language":["self","super"], -keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"], -built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"], -literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={ -begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s] -}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10 -}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/, -end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c], -variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{ -begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{ -begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//, -end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{ -begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ -begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ -begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ -begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ -begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)), -contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, -contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",u={className:"number", -relevance:0,variants:[{ -begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{ -begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" -},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ -begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{ -className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0, -keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{ -match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class", -4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{ -2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{ -1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, -className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{ -match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{ -begin:e.IDENT_RE+"::"},{className:"symbol", -begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", -begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},u,{className:"variable", -begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ -className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0, -relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*", -keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c], -illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{ -begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[", -end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l) -;c.contains=m,b.contains=m;const p=[{begin:/^\s*=>/,starts:{end:"$",contains:m} -},{className:"meta.prompt", -begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", -starts:{end:"$",keywords:r,contains:m}}];return l.unshift(o),{name:"Ruby", -aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/, -contains:[e.SHEBANG({binary:"ruby"})].concat(p).concat(l).concat(m)}}, -grmr_rust:e=>{const n=e.regex,t={className:"title.function.invoke",relevance:0, -begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,e.IDENT_RE,n.lookahead(/\s*\(/)) -},a="([ui](8|16|32|64|128|size)|f(32|64))?",i=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],r=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"] -;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:r, -keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"], -literal:["true","false","Some","None","Ok","Err"],built_in:i},illegal:""},t]}}, -grmr_scss:e=>{const n=ie(e),t=le,a=oe,i="@[a-z-]+",r={className:"variable", -begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS", -case_insensitive:!0,illegal:"[=/|']", -contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{ -className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{ -className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0 -},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag", -begin:"\\b("+re.join("|")+")\\b",relevance:0},{className:"selector-pseudo", -begin:":("+a.join("|")+")"},{className:"selector-pseudo", -begin:":(:)?("+t.join("|")+")"},r,{begin:/\(/,end:/\)/, -contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute", -begin:"\\b("+ce.join("|")+")\\b"},{ -begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" -},{begin:/:/,end:/[;}{]/,relevance:0, -contains:[n.BLOCK_COMMENT,r,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH] -},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{ -begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/, -keyword:"and or not only",attribute:se.join(" ")},contains:[{begin:i, -className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute" -},r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE] -},n.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session", -aliases:["console","shellsession"],contains:[{className:"meta.prompt", -begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/, -subLanguage:"bash"}}]}),grmr_sql:e=>{ -const n=e.regex,t=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],r=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=r,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!r.includes(e))),c={ -begin:n.concat(/\b/,n.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}} -;return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{ -$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t -;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e)) -})(l,{when:e=>e.length<3}),literal:a,type:i, -built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] -},contains:[{begin:n.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/, -keyword:l.concat(s),literal:a,type:i}},{className:"type", -begin:n.either("double precision","large object","with timezone","without timezone") -},c,{className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},{className:"string", -variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/, -contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{ -className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/, -relevance:0}]}},grmr_swift:e=>{const n={match:/\s+/,relevance:0 -},t=e.COMMENT("/\\*","\\*/",{contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],i={ -match:[/\./,m(...xe,...Me)],className:{2:"keyword"}},r={match:b(/\./,m(...Ae)), -relevance:0},s=Ae.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{ -className:"keyword", -match:m(...Ae.filter((e=>"string"!=typeof e)).concat(Se).map(ke),...Me)}]},l={ -$pattern:m(/\b\w+/,/#\w+/),keyword:s.concat(Re),literal:Ce},c=[i,r,o],g=[{ -match:b(/\./,m(...De)),relevance:0},{className:"built_in", -match:b(/\b/,m(...De),/(?=\()/)}],u={match:/->/,relevance:0},p=[u,{ -className:"operator",relevance:0,variants:[{match:Be},{match:`\\.(\\.|${Le})+`}] -}],_="([0-9]_*)+",h="([0-9a-fA-F]_*)+",f={className:"number",relevance:0, -variants:[{match:`\\b(${_})(\\.(${_}))?([eE][+-]?(${_}))?\\b`},{ -match:`\\b0x(${h})(\\.(${h}))?([pP][+-]?(${_}))?\\b`},{match:/\b0o([0-7]_*)+\b/ -},{match:/\b0b([01]_*)+\b/}]},E=(e="")=>({className:"subst",variants:[{ -match:b(/\\/,e,/[0\\tnr"']/)},{match:b(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}] -}),y=(e="")=>({className:"subst",match:b(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/) -}),N=(e="")=>({className:"subst",label:"interpol",begin:b(/\\/,e,/\(/),end:/\)/ -}),w=(e="")=>({begin:b(e,/"""/),end:b(/"""/,e),contains:[E(e),y(e),N(e)] -}),v=(e="")=>({begin:b(e,/"/),end:b(/"/,e),contains:[E(e),N(e)]}),O={ -className:"string", -variants:[w(),w("#"),w("##"),w("###"),v(),v("#"),v("##"),v("###")] -},k=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0, -contains:[e.BACKSLASH_ESCAPE]}],x={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//, -contains:k},M=e=>{const n=b(e,/\//),t=b(/\//,e);return{begin:n,end:t, -contains:[...k,{scope:"comment",begin:`#(?!.*${t})`,end:/$/}]}},S={ -scope:"regexp",variants:[M("###"),M("##"),M("#"),x]},A={match:b(/`/,Fe,/`/) -},C=[A,{className:"variable",match:/\$\d+/},{className:"variable", -match:`\\$${ze}+`}],T=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{ -contains:[{begin:/\(/,end:/\)/,keywords:Pe,contains:[...p,f,O]}]}},{ -scope:"keyword",match:b(/@/,m(...je))},{scope:"meta",match:b(/@/,Fe)}],R={ -match:d(/\b[A-Z]/),relevance:0,contains:[{className:"type", -match:b(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,ze,"+") -},{className:"type",match:Ue,relevance:0},{match:/[?!]+/,relevance:0},{ -match:/\.\.\./,relevance:0},{match:b(/\s+&\s+/,d(Ue)),relevance:0}]},D={ -begin://,keywords:l,contains:[...a,...c,...T,u,R]};R.contains.push(D) -;const I={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{ -match:b(Fe,/\s*:/),keywords:"_|0",relevance:0 -},...a,S,...c,...g,...p,f,O,...C,...T,R]},L={begin://, -keywords:"repeat each",contains:[...a,R]},B={begin:/\(/,end:/\)/,keywords:l, -contains:[{begin:m(d(b(Fe,/\s*:/)),d(b(Fe,/\s+/,Fe,/\s*:/))),end:/:/, -relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params", -match:Fe}]},...a,...c,...p,f,O,...T,R,I],endsParent:!0,illegal:/["']/},$={ -match:[/(func|macro)/,/\s+/,m(A.match,Fe,Be)],className:{1:"keyword", -3:"title.function"},contains:[L,B,n],illegal:[/\[/,/%/]},z={ -match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"}, -contains:[L,B,n],illegal:/\[|%/},F={match:[/operator/,/\s+/,Be],className:{ -1:"keyword",3:"title"}},U={begin:[/precedencegroup/,/\s+/,Ue],className:{ -1:"keyword",3:"title"},contains:[R],keywords:[...Te,...Ce],end:/}/} -;for(const e of O.variants){const n=e.contains.find((e=>"interpol"===e.label)) -;n.keywords=l;const t=[...c,...g,...p,f,O,...C];n.contains=[...t,{begin:/\(/, -end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:l, -contains:[...a,$,z,{beginKeywords:"struct protocol class extension enum actor", -end:"\\{",excludeEnd:!0,keywords:l,contains:[e.inherit(e.TITLE_MODE,{ -className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...c] -},F,U,{beginKeywords:"import",end:/$/,contains:[...a],relevance:0 -},S,...c,...g,...p,f,O,...C,...T,R,I]}},grmr_typescript:e=>{ -const n=Oe(e),t=_e,a=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],i={ -beginKeywords:"namespace",end:/\{/,excludeEnd:!0, -contains:[n.exports.CLASS_REFERENCE]},r={beginKeywords:"interface",end:/\{/, -excludeEnd:!0,keywords:{keyword:"interface extends",built_in:a}, -contains:[n.exports.CLASS_REFERENCE]},s={$pattern:_e, -keyword:he.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]), -literal:fe,built_in:ve.concat(a),"variable.language":we},o={className:"meta", -begin:"@"+t},l=(e,n,t)=>{const a=e.contains.findIndex((e=>e.label===n)) -;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)} -;return Object.assign(n.keywords,s), -n.exports.PARAMS_CONTAINS.push(o),n.contains=n.contains.concat([o,i,r]), -l(n,"shebang",e.SHEBANG()),l(n,"use_strict",{className:"meta",relevance:10, -begin:/^\s*['"]use strict['"]/ -}),n.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(n,{ -name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n},grmr_vbnet:e=>{ -const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,s={ -className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{ -begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{ -begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,r),/ *#/)}] -},o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}] -}),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]}) -;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0, -classNameAliases:{label:"symbol"},keywords:{ -keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield", -built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort", -type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort", -literal:"true false nothing"}, -illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{ -className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/, -end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0, -variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ -},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{ -begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{ -className:"label",begin:/^\w+:/},o,l,{className:"meta", -begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/, -end:/$/,keywords:{ -keyword:"const disable else elseif enable end externalsource if region then"}, -contains:[l]}]}},grmr_wasm:e=>{e.regex;const n=e.COMMENT(/\(;/,/;\)/) -;return n.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/, -keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"] -},contains:[e.COMMENT(/;;/,/$/),n,{match:[/(?:offset|align)/,/\s*/,/=/], -className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{ -match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{ -begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword", -3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/, -className:"type"},{className:"keyword", -match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/ -},{className:"number",relevance:0, -match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/ -}]}},grmr_xml:e=>{ -const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={ -className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/, -contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] -},r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{ -className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={ -endsWithParent:!0,illegal:/`]+/}]}]}]};return{ -name:"HTML, XML", -aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], -case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{ -className:"meta",begin://,contains:[i,r,o,s]}]}] -},e.COMMENT(//,{relevance:10}),{begin://, -relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/, -relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", -begin:/)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{ -end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", -begin:/)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{ -end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ -className:"tag",begin:/<>|<\/>/},{className:"tag", -begin:n.concat(//,/>/,/\s/)))), -end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{ -className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{ -className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]} -},grmr_yaml:e=>{ -const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={ -className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ -},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", -variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{ -variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),r={ -end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},s={begin:/\{/, -end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={begin:"\\[",end:"\\]", -contains:[r],illegal:"\\n",relevance:0},l=[{className:"attr",variants:[{ -begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ -begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", -relevance:10},{className:"string", -begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ -begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, -relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type", -begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t -},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", -begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", -relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ -className:"number", -begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" -},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,a],c=[...l] -;return c.pop(),c.push(i),r.contains=c,{name:"YAML",case_insensitive:!0, -aliases:["yml"],contains:l}}});const He=ae;for(const e of Object.keys(Ke)){ -const n=e.replace("grmr_","").replace("_","-");He.registerLanguage(n,Ke[e])} -return He}() -;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); \ No newline at end of file diff --git a/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/vs2015.min.css b/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/vs2015.min.css deleted file mode 100644 index 7f6fe11c..00000000 --- a/build/lib/exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/vs2015.min.css +++ /dev/null @@ -1 +0,0 @@ -pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#1e1e1e;color:#dcdcdc}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-symbol{color:#569cd6}.hljs-link{color:#569cd6;text-decoration:underline}.hljs-built_in,.hljs-type{color:#4ec9b0}.hljs-class,.hljs-number{color:#b8d7a3}.hljs-meta .hljs-string,.hljs-string{color:#d69d85}.hljs-regexp,.hljs-template-tag{color:#9a5334}.hljs-formula,.hljs-function,.hljs-params,.hljs-subst,.hljs-title{color:#dcdcdc}.hljs-comment,.hljs-quote{color:#57a64a;font-style:italic}.hljs-doctag{color:#608b4e}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-tag{color:#9b9b9b}.hljs-template-variable,.hljs-variable{color:#bd63c5}.hljs-attr,.hljs-attribute{color:#9cdcfe}.hljs-section{color:gold}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-bullet,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag{color:#d7ba7d}.hljs-addition{background-color:#144212;display:inline-block;width:100%}.hljs-deletion{background-color:#600;display:inline-block;width:100%} \ No newline at end of file diff --git a/build/lib/exo/tinychat/static/unpkg.com/@marcreichel/alpine-autosize@1.3.x/dist/alpine-autosize.min.js b/build/lib/exo/tinychat/static/unpkg.com/@marcreichel/alpine-autosize@1.3.x/dist/alpine-autosize.min.js deleted file mode 100644 index dd119d59..00000000 --- a/build/lib/exo/tinychat/static/unpkg.com/@marcreichel/alpine-autosize@1.3.x/dist/alpine-autosize.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";var e=new Map;function t(t){var o=e.get(t);o&&o.destroy()}function o(t){var o=e.get(t);o&&o.update()}var r=null;"undefined"==typeof window?((r=function(e){return e}).destroy=function(e){return e},r.update=function(e){return e}):((r=function(t,o){return t&&Array.prototype.forEach.call(t.length?t:[t],(function(t){return function(t){if(t&&t.nodeName&&"TEXTAREA"===t.nodeName&&!e.has(t)){var o,r=null,n=window.getComputedStyle(t),i=(o=t.value,function(){s({testForHeightReduction:""===o||!t.value.startsWith(o),restoreTextAlign:null}),o=t.value}),l=function(o){t.removeEventListener("autosize:destroy",l),t.removeEventListener("autosize:update",a),t.removeEventListener("input",i),window.removeEventListener("resize",a),Object.keys(o).forEach((function(e){return t.style[e]=o[e]})),e.delete(t)}.bind(t,{height:t.style.height,resize:t.style.resize,textAlign:t.style.textAlign,overflowY:t.style.overflowY,overflowX:t.style.overflowX,wordWrap:t.style.wordWrap});t.addEventListener("autosize:destroy",l),t.addEventListener("autosize:update",a),t.addEventListener("input",i),window.addEventListener("resize",a),t.style.overflowX="hidden",t.style.wordWrap="break-word",e.set(t,{destroy:l,update:a}),a()}function s(e){var o,i,l=e.restoreTextAlign,a=void 0===l?null:l,d=e.testForHeightReduction,u=void 0===d||d,c=n.overflowY;if(0!==t.scrollHeight&&("vertical"===n.resize?t.style.resize="none":"both"===n.resize&&(t.style.resize="horizontal"),u&&(o=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push([e.parentNode,e.parentNode.scrollTop]),e=e.parentNode;return function(){return t.forEach((function(e){var t=e[0],o=e[1];t.style.scrollBehavior="auto",t.scrollTop=o,t.style.scrollBehavior=null}))}}(t),t.style.height=""),i="content-box"===n.boxSizing?t.scrollHeight-(parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)):t.scrollHeight+parseFloat(n.borderTopWidth)+parseFloat(n.borderBottomWidth),"none"!==n.maxHeight&&i>parseFloat(n.maxHeight)?("hidden"===n.overflowY&&(t.style.overflow="scroll"),i=parseFloat(n.maxHeight)):"hidden"!==n.overflowY&&(t.style.overflow="hidden"),t.style.height=i+"px",a&&(t.style.textAlign=a),o&&o(),r!==i&&(t.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),r=i),c!==n.overflow&&!a)){var f=n.textAlign;"hidden"===n.overflow&&(t.style.textAlign="start"===f?"end":"start"),s({restoreTextAlign:f,testForHeightReduction:!0})}}function a(){s({testForHeightReduction:!0,restoreTextAlign:null})}}(t)})),t}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],t),e},r.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],o),e});var n=r;document.addEventListener("alpine:init",(()=>{var e;(e=window.Alpine).directive("autosize",((e,{modifiers:t},{cleanup:o})=>{n(e);const r=Array.from(e.attributes);let i=!1;for(let{nodeName:e}of r)if("wire:model"===e||e.startsWith("wire:model.")){i=!0;break}!e.hasAttribute("wire:ignore")&&i&&e.setAttribute("wire:ignore","");const l=()=>{n.update(e)};e.addEventListener("autosize",l),o((()=>{n.destroy(e),e.removeEventListener("autosize",l)}))})),e.magic("autosize",(e=>t=>{(t||e).dispatchEvent(new Event("autosize"))}))}))})); -//# sourceMappingURL=alpine-autosize.min.js.map diff --git a/build/lib/exo/tinychat/static/unpkg.com/alpinejs@3.x.x/dist/cdn.min.js b/build/lib/exo/tinychat/static/unpkg.com/alpinejs@3.x.x/dist/cdn.min.js deleted file mode 100644 index 2ca48278..00000000 --- a/build/lib/exo/tinychat/static/unpkg.com/alpinejs@3.x.x/dist/cdn.min.js +++ /dev/null @@ -1,5 +0,0 @@ -(()=>{var rt=!1,nt=!1,U=[],it=-1;function qt(e){Cn(e)}function Cn(e){U.includes(e)||U.push(e),Tn()}function Ee(e){let t=U.indexOf(e);t!==-1&&t>it&&U.splice(t,1)}function Tn(){!nt&&!rt&&(rt=!0,queueMicrotask(Rn))}function Rn(){rt=!1,nt=!0;for(let e=0;ee.effect(t,{scheduler:r=>{ot?qt(r):r()}}),st=e.raw}function at(e){D=e}function Gt(e){let t=()=>{};return[n=>{let i=D(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),L(i))},i},()=>{t()}]}function ve(e,t){let r=!0,n,i=D(()=>{let o=e();JSON.stringify(o),r?n=o:queueMicrotask(()=>{t(o,n),n=o}),r=!1});return()=>L(i)}var Jt=[],Yt=[],Xt=[];function Zt(e){Xt.push(e)}function ee(e,t){typeof t=="function"?(e._x_cleanups||(e._x_cleanups=[]),e._x_cleanups.push(t)):(t=e,Yt.push(t))}function Ae(e){Jt.push(e)}function Oe(e,t,r){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(r)}function ct(e,t){e._x_attributeCleanups&&Object.entries(e._x_attributeCleanups).forEach(([r,n])=>{(t===void 0||t.includes(r))&&(n.forEach(i=>i()),delete e._x_attributeCleanups[r])})}function Qt(e){if(e._x_cleanups)for(;e._x_cleanups.length;)e._x_cleanups.pop()()}var lt=new MutationObserver(pt),ut=!1;function le(){lt.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),ut=!0}function ft(){Mn(),lt.disconnect(),ut=!1}var ce=[];function Mn(){let e=lt.takeRecords();ce.push(()=>e.length>0&&pt(e));let t=ce.length;queueMicrotask(()=>{if(ce.length===t)for(;ce.length>0;)ce.shift()()})}function _(e){if(!ut)return e();ft();let t=e();return le(),t}var dt=!1,Se=[];function er(){dt=!0}function tr(){dt=!1,pt(Se),Se=[]}function pt(e){if(dt){Se=Se.concat(e);return}let t=new Set,r=new Set,n=new Map,i=new Map;for(let o=0;os.nodeType===1&&t.add(s)),e[o].removedNodes.forEach(s=>s.nodeType===1&&r.add(s))),e[o].type==="attributes")){let s=e[o].target,a=e[o].attributeName,c=e[o].oldValue,l=()=>{n.has(s)||n.set(s,[]),n.get(s).push({name:a,value:s.getAttribute(a)})},u=()=>{i.has(s)||i.set(s,[]),i.get(s).push(a)};s.hasAttribute(a)&&c===null?l():s.hasAttribute(a)?(u(),l()):u()}i.forEach((o,s)=>{ct(s,o)}),n.forEach((o,s)=>{Jt.forEach(a=>a(s,o))});for(let o of r)t.has(o)||Yt.forEach(s=>s(o));t.forEach(o=>{o._x_ignoreSelf=!0,o._x_ignore=!0});for(let o of t)r.has(o)||o.isConnected&&(delete o._x_ignoreSelf,delete o._x_ignore,Xt.forEach(s=>s(o)),o._x_ignore=!0,o._x_ignoreSelf=!0);t.forEach(o=>{delete o._x_ignoreSelf,delete o._x_ignore}),t=null,r=null,n=null,i=null}function Ce(e){return F(j(e))}function P(e,t,r){return e._x_dataStack=[t,...j(r||e)],()=>{e._x_dataStack=e._x_dataStack.filter(n=>n!==t)}}function j(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot=="function"&&e instanceof ShadowRoot?j(e.host):e.parentNode?j(e.parentNode):[]}function F(e){return new Proxy({objects:e},Nn)}var Nn={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(t=>Object.keys(t))))},has({objects:e},t){return t==Symbol.unscopables?!1:e.some(r=>Object.prototype.hasOwnProperty.call(r,t)||Reflect.has(r,t))},get({objects:e},t,r){return t=="toJSON"?Dn:Reflect.get(e.find(n=>Reflect.has(n,t))||{},t,r)},set({objects:e},t,r,n){let i=e.find(s=>Object.prototype.hasOwnProperty.call(s,t))||e[e.length-1],o=Object.getOwnPropertyDescriptor(i,t);return o?.set&&o?.get?o.set.call(n,r)||!0:Reflect.set(i,t,r)}};function Dn(){return Reflect.ownKeys(this).reduce((t,r)=>(t[r]=Reflect.get(this,r),t),{})}function Te(e){let t=n=>typeof n=="object"&&!Array.isArray(n)&&n!==null,r=(n,i="")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach(([o,{value:s,enumerable:a}])=>{if(a===!1||s===void 0||typeof s=="object"&&s!==null&&s.__v_skip)return;let c=i===""?o:`${i}.${o}`;typeof s=="object"&&s!==null&&s._x_interceptor?n[o]=s.initialize(e,c,o):t(s)&&s!==n&&!(s instanceof Element)&&r(s,c)})};return r(e)}function Re(e,t=()=>{}){let r={initialValue:void 0,_x_interceptor:!0,initialize(n,i,o){return e(this.initialValue,()=>Pn(n,i),s=>mt(n,i,s),i,o)}};return t(r),n=>{if(typeof n=="object"&&n!==null&&n._x_interceptor){let i=r.initialize.bind(r);r.initialize=(o,s,a)=>{let c=n.initialize(o,s,a);return r.initialValue=c,i(o,s,a)}}else r.initialValue=n;return r}}function Pn(e,t){return t.split(".").reduce((r,n)=>r[n],e)}function mt(e,t,r){if(typeof t=="string"&&(t=t.split(".")),t.length===1)e[t[0]]=r;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),mt(e[t[0]],t.slice(1),r)}}var rr={};function y(e,t){rr[e]=t}function ue(e,t){return Object.entries(rr).forEach(([r,n])=>{let i=null;function o(){if(i)return i;{let[s,a]=_t(t);return i={interceptor:Re,...s},ee(t,a),i}}Object.defineProperty(e,`$${r}`,{get(){return n(t,o())},enumerable:!1})}),e}function nr(e,t,r,...n){try{return r(...n)}catch(i){te(i,e,t)}}function te(e,t,r=void 0){e=Object.assign(e??{message:"No error message given."},{el:t,expression:r}),console.warn(`Alpine Expression Error: ${e.message} - -${r?'Expression: "'+r+`" - -`:""}`,t),setTimeout(()=>{throw e},0)}var Me=!0;function De(e){let t=Me;Me=!1;let r=e();return Me=t,r}function M(e,t,r={}){let n;return x(e,t)(i=>n=i,r),n}function x(...e){return ir(...e)}var ir=gt;function or(e){ir=e}function gt(e,t){let r={};ue(r,e);let n=[r,...j(e)],i=typeof t=="function"?In(n,t):Ln(n,t,e);return nr.bind(null,e,t,i)}function In(e,t){return(r=()=>{},{scope:n={},params:i=[]}={})=>{let o=t.apply(F([n,...e]),i);Ne(r,o)}}var ht={};function kn(e,t){if(ht[e])return ht[e];let r=Object.getPrototypeOf(async function(){}).constructor,n=/^[\n\s]*if.*\(.*\)/.test(e.trim())||/^(let|const)\s/.test(e.trim())?`(async()=>{ ${e} })()`:e,o=(()=>{try{let s=new r(["__self","scope"],`with (scope) { __self.result = ${n} }; __self.finished = true; return __self.result;`);return Object.defineProperty(s,"name",{value:`[Alpine] ${e}`}),s}catch(s){return te(s,t,e),Promise.resolve()}})();return ht[e]=o,o}function Ln(e,t,r){let n=kn(t,r);return(i=()=>{},{scope:o={},params:s=[]}={})=>{n.result=void 0,n.finished=!1;let a=F([o,...e]);if(typeof n=="function"){let c=n(n,a).catch(l=>te(l,r,t));n.finished?(Ne(i,n.result,a,s,r),n.result=void 0):c.then(l=>{Ne(i,l,a,s,r)}).catch(l=>te(l,r,t)).finally(()=>n.result=void 0)}}}function Ne(e,t,r,n,i){if(Me&&typeof t=="function"){let o=t.apply(r,n);o instanceof Promise?o.then(s=>Ne(e,s,r,n)).catch(s=>te(s,i,t)):e(o)}else typeof t=="object"&&t instanceof Promise?t.then(o=>e(o)):e(t)}var bt="x-";function C(e=""){return bt+e}function sr(e){bt=e}var Pe={};function d(e,t){return Pe[e]=t,{before(r){if(!Pe[r]){console.warn(String.raw`Cannot find directive \`${r}\`. \`${e}\` will use the default order of execution`);return}let n=W.indexOf(r);W.splice(n>=0?n:W.indexOf("DEFAULT"),0,e)}}}function ar(e){return Object.keys(Pe).includes(e)}function de(e,t,r){if(t=Array.from(t),e._x_virtualDirectives){let o=Object.entries(e._x_virtualDirectives).map(([a,c])=>({name:a,value:c})),s=wt(o);o=o.map(a=>s.find(c=>c.name===a.name)?{name:`x-bind:${a.name}`,value:`"${a.value}"`}:a),t=t.concat(o)}let n={};return t.map(ur((o,s)=>n[o]=s)).filter(dr).map(jn(n,r)).sort(Fn).map(o=>$n(e,o))}function wt(e){return Array.from(e).map(ur()).filter(t=>!dr(t))}var xt=!1,fe=new Map,cr=Symbol();function lr(e){xt=!0;let t=Symbol();cr=t,fe.set(t,[]);let r=()=>{for(;fe.get(t).length;)fe.get(t).shift()();fe.delete(t)},n=()=>{xt=!1,r()};e(r),n()}function _t(e){let t=[],r=a=>t.push(a),[n,i]=Gt(e);return t.push(i),[{Alpine:B,effect:n,cleanup:r,evaluateLater:x.bind(x,e),evaluate:M.bind(M,e)},()=>t.forEach(a=>a())]}function $n(e,t){let r=()=>{},n=Pe[t.type]||r,[i,o]=_t(e);Oe(e,t.original,o);let s=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,i),n=n.bind(n,e,t,i),xt?fe.get(cr).push(n):n())};return s.runCleanups=o,s}var Ie=(e,t)=>({name:r,value:n})=>(r.startsWith(e)&&(r=r.replace(e,t)),{name:r,value:n}),ke=e=>e;function ur(e=()=>{}){return({name:t,value:r})=>{let{name:n,value:i}=fr.reduce((o,s)=>s(o),{name:t,value:r});return n!==t&&e(n,t),{name:n,value:i}}}var fr=[];function re(e){fr.push(e)}function dr({name:e}){return pr().test(e)}var pr=()=>new RegExp(`^${bt}([^:^.]+)\\b`);function jn(e,t){return({name:r,value:n})=>{let i=r.match(pr()),o=r.match(/:([a-zA-Z0-9\-_:]+)/),s=r.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],a=t||e[r]||r;return{type:i?i[1]:null,value:o?o[1]:null,modifiers:s.map(c=>c.replace(".","")),expression:n,original:a}}}var yt="DEFAULT",W=["ignore","ref","data","id","anchor","bind","init","for","model","modelable","transition","show","if",yt,"teleport"];function Fn(e,t){let r=W.indexOf(e.type)===-1?yt:e.type,n=W.indexOf(t.type)===-1?yt:t.type;return W.indexOf(r)-W.indexOf(n)}function G(e,t,r={}){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0}))}function T(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>T(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)T(n,t,!1),n=n.nextElementSibling}function E(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var mr=!1;function _r(){mr&&E("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),mr=!0,document.body||E("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's `