From aae318425d52af7a573f3fb4c0a6a00576ce2db2 Mon Sep 17 00:00:00 2001 From: chainchompa Date: Fri, 14 Jun 2024 17:08:39 -0400 Subject: [PATCH 01/17] added route for installing huggingface model from model marketplace --- invokeai/app/api/routers/model_manager.py | 76 ++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/invokeai/app/api/routers/model_manager.py b/invokeai/app/api/routers/model_manager.py index b1221f7a34..01590b21be 100644 --- a/invokeai/app/api/routers/model_manager.py +++ b/invokeai/app/api/routers/model_manager.py @@ -9,7 +9,7 @@ from copy import deepcopy from typing import Any, Dict, List, Optional, Type from fastapi import Body, Path, Query, Response, UploadFile -from fastapi.responses import FileResponse +from fastapi.responses import FileResponse, HTMLResponse from fastapi.routing import APIRouter from PIL import Image from pydantic import AnyHttpUrl, BaseModel, ConfigDict, Field @@ -501,6 +501,80 @@ async def install_model( raise HTTPException(status_code=409, detail=str(e)) return result +@model_manager_router.get( + "/install/huggingface", + operation_id="install_hugging_face_model", + responses={ + 201: {"description": "The model is being installed"}, + 400: {"description": "Bad request"}, + 409: {"description": "There is already a model corresponding to this path or repo_id"}, + }, + status_code=201, + response_class=HTMLResponse +) +async def install_hugging_face_model( + source: str = Query(description="Hugging Face repo_id to install"), +) -> HTMLResponse: + """Install a Hugging Face model using a string identifier.""" + + def generate_html(message: str) -> str: + return f""" + + + + + +
+

{message}

+
+ + + """ + + try: + metadata = HuggingFaceMetadataFetch().from_id(source) + assert isinstance(metadata, ModelMetadataWithFiles) + message = "Your Hugging Face model is installing now. You can close this tab and check the Model Manager for installation progress." + except UnknownMetadataException: + message = "No HuggingFace repository found with that repo id." + return HTMLResponse(content=generate_html(message), status_code=400) + + logger = ApiDependencies.invoker.services.logger + + try: + installer = ApiDependencies.invoker.services.model_manager.install + + if metadata.is_diffusers: + installer.heuristic_import( + source=source, + inplace=False, + ) + elif metadata.ckpt_urls is not None and len(metadata.ckpt_urls) == 1: + installer.heuristic_import( + source=str(metadata.ckpt_urls[0]), + inplace=False, + ) + else: + message = "This HuggingFace repo has multiple models. Please use the Model Manager to install this." + except Exception as e: + logger.error(str(e)) + message = "There was an error with installing this model. Please use the Model Manager to install this." + + return HTMLResponse(content=generate_html(message), status_code=201) + @model_manager_router.get( "/install", From 328f160e88b403b193f3a0708ffce4f878084ec5 Mon Sep 17 00:00:00 2001 From: chainchompa Date: Fri, 14 Jun 2024 17:09:07 -0400 Subject: [PATCH 02/17] refetch model installs when a new model install starts --- .../listeners/socketio/socketModelInstall.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts index 7fafb8302c..adfa7edd06 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts @@ -6,9 +6,17 @@ import { socketModelInstallComplete, socketModelInstallDownloadProgress, socketModelInstallError, + socketModelInstallStarted, } from 'services/events/actions'; export const addModelInstallEventListener = (startAppListening: AppStartListening) => { + startAppListening({ + actionCreator: socketModelInstallStarted, + effect: async (action, { dispatch }) => { + dispatch(api.util.invalidateTags([{ type: 'ModelInstalls' }])); + }, + }); + startAppListening({ actionCreator: socketModelInstallDownloadProgress, effect: async (action, { dispatch }) => { From 40299725304e3fa3271b2d6d746512b7c448e1cd Mon Sep 17 00:00:00 2001 From: chainchompa Date: Fri, 14 Jun 2024 17:15:55 -0400 Subject: [PATCH 03/17] formatting --- invokeai/app/api/routers/model_manager.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/invokeai/app/api/routers/model_manager.py b/invokeai/app/api/routers/model_manager.py index 01590b21be..f2fb0932e5 100644 --- a/invokeai/app/api/routers/model_manager.py +++ b/invokeai/app/api/routers/model_manager.py @@ -501,6 +501,7 @@ async def install_model( raise HTTPException(status_code=409, detail=str(e)) return result + @model_manager_router.get( "/install/huggingface", operation_id="install_hugging_face_model", @@ -510,7 +511,7 @@ async def install_model( 409: {"description": "There is already a model corresponding to this path or repo_id"}, }, status_code=201, - response_class=HTMLResponse + response_class=HTMLResponse, ) async def install_hugging_face_model( source: str = Query(description="Hugging Face repo_id to install"), From 1bc98abc7626690b4f850b80a72dd4d4573190dc Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Mon, 17 Jun 2024 09:33:46 +1000 Subject: [PATCH 04/17] docs(ui): explain model install events --- .../listeners/socketio/socketModelInstall.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts index adfa7edd06..113d2cbd66 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts @@ -9,6 +9,21 @@ import { socketModelInstallStarted, } from 'services/events/actions'; +/** + * A model install has two main stages - downloading and installing. All these events are namespaced under `model_install_` + * which is a bit misleading. For example, a `model_install_started` event is actually fired _after_ the model has fully + * downloaded and is being "physically" installed. + * + * Here's the expected flow: + * - Model manager does some prep + * - `model_install_download_progress` fired when the download starts and continually until the download is complete + * - `model_install_download_complete` fired when the download is complete + * - `model_install_started` fired when the "physical" installation starts + * - `model_install_complete` fired when the installation is complete + * - `model_install_cancelled` fired if the installation is cancelled + * - `model_install_error` fired if the installation has an error + */ + export const addModelInstallEventListener = (startAppListening: AppStartListening) => { startAppListening({ actionCreator: socketModelInstallStarted, From fb694b3e179733400676c8cc7bcbb1c7ae7ba60e Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Mon, 17 Jun 2024 09:50:25 +1000 Subject: [PATCH 05/17] feat(app): add `model_install_download_started` event Previously, we used `model_install_download_progress` for both download starting and progressing. When handling this event, we don't know which actual thing it represents. Add `model_install_download_started` event to explicitly represent a model download started event. --- invokeai/app/services/events/events_base.py | 5 +++ invokeai/app/services/events/events_common.py | 36 +++++++++++++++++++ .../model_install/model_install_default.py | 9 ++++- 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/invokeai/app/services/events/events_base.py b/invokeai/app/services/events/events_base.py index cf49cc0626..bb578c23e8 100644 --- a/invokeai/app/services/events/events_base.py +++ b/invokeai/app/services/events/events_base.py @@ -22,6 +22,7 @@ from invokeai.app.services.events.events_common import ( ModelInstallCompleteEvent, ModelInstallDownloadProgressEvent, ModelInstallDownloadsCompleteEvent, + ModelInstallDownloadStartedEvent, ModelInstallErrorEvent, ModelInstallStartedEvent, ModelLoadCompleteEvent, @@ -144,6 +145,10 @@ class EventServiceBase: # region Model install + def emit_model_install_download_started(self, job: "ModelInstallJob") -> None: + """Emitted at intervals while the install job is started (remote models only).""" + self.dispatch(ModelInstallDownloadStartedEvent.build(job)) + def emit_model_install_download_progress(self, job: "ModelInstallJob") -> None: """Emitted at intervals while the install job is in progress (remote models only).""" self.dispatch(ModelInstallDownloadProgressEvent.build(job)) diff --git a/invokeai/app/services/events/events_common.py b/invokeai/app/services/events/events_common.py index 0adcaa2ab1..c6a867fb08 100644 --- a/invokeai/app/services/events/events_common.py +++ b/invokeai/app/services/events/events_common.py @@ -417,6 +417,42 @@ class ModelLoadCompleteEvent(ModelEventBase): return cls(config=config, submodel_type=submodel_type) +@payload_schema.register +class ModelInstallDownloadStartedEvent(ModelEventBase): + """Event model for model_install_download_started""" + + __event_name__ = "model_install_download_started" + + id: int = Field(description="The ID of the install job") + source: str = Field(description="Source of the model; local path, repo_id or url") + local_path: str = Field(description="Where model is downloading to") + bytes: int = Field(description="Number of bytes downloaded so far") + total_bytes: int = Field(description="Total size of download, including all files") + parts: list[dict[str, int | str]] = Field( + description="Progress of downloading URLs that comprise the model, if any" + ) + + @classmethod + def build(cls, job: "ModelInstallJob") -> "ModelInstallDownloadStartedEvent": + parts: list[dict[str, str | int]] = [ + { + "url": str(x.source), + "local_path": str(x.download_path), + "bytes": x.bytes, + "total_bytes": x.total_bytes, + } + for x in job.download_parts + ] + return cls( + id=job.id, + source=str(job.source), + local_path=job.local_path.as_posix(), + parts=parts, + bytes=job.bytes, + total_bytes=job.total_bytes, + ) + + @payload_schema.register class ModelInstallDownloadProgressEvent(ModelEventBase): """Event model for model_install_download_progress""" diff --git a/invokeai/app/services/model_install/model_install_default.py b/invokeai/app/services/model_install/model_install_default.py index 0a2e2d798a..dd1b44d899 100644 --- a/invokeai/app/services/model_install/model_install_default.py +++ b/invokeai/app/services/model_install/model_install_default.py @@ -822,7 +822,7 @@ class ModelInstallService(ModelInstallServiceBase): install_job.download_parts = download_job.download_parts install_job.bytes = sum(x.bytes for x in download_job.download_parts) install_job.total_bytes = download_job.total_bytes - self._signal_job_downloading(install_job) + self._signal_job_download_started(install_job) def _download_progress_callback(self, download_job: MultiFileDownloadJob) -> None: with self._lock: @@ -874,6 +874,13 @@ class ModelInstallService(ModelInstallServiceBase): if self._event_bus: self._event_bus.emit_model_install_started(job) + def _signal_job_download_started(self, job: ModelInstallJob) -> None: + if self._event_bus: + assert job._multifile_job is not None + assert job.bytes is not None + assert job.total_bytes is not None + self._event_bus.emit_model_install_download_started(job) + def _signal_job_downloading(self, job: ModelInstallJob) -> None: if self._event_bus: assert job._multifile_job is not None From c11478a94ac53e9f61ff57ff69e75fb45d6504f2 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Mon, 17 Jun 2024 09:51:18 +1000 Subject: [PATCH 06/17] chore(ui): typegen --- .../frontend/web/src/services/api/schema.ts | 435 +++++++++++------- 1 file changed, 260 insertions(+), 175 deletions(-) diff --git a/invokeai/frontend/web/src/services/api/schema.ts b/invokeai/frontend/web/src/services/api/schema.ts index 5482b57c0b..fe2732d06b 100644 --- a/invokeai/frontend/web/src/services/api/schema.ts +++ b/invokeai/frontend/web/src/services/api/schema.ts @@ -123,6 +123,13 @@ export type paths = { */ delete: operations["prune_model_install_jobs"]; }; + "/api/v2/models/install/huggingface": { + /** + * Install Hugging Face Model + * @description Install a Hugging Face model using a string identifier. + */ + get: operations["install_hugging_face_model"]; + }; "/api/v2/models/install/{id}": { /** * Get Model Install Job @@ -3788,23 +3795,6 @@ export type components = { * @description Class to monitor and control a model download request. */ DownloadJob: { - /** - * Source - * Format: uri - * @description Where to download from. Specific types specified in child classes. - */ - source: string; - /** - * Dest - * Format: path - * @description Destination of downloaded model on local disk; a directory or file path - */ - dest: string; - /** - * Access Token - * @description authorization token for protected resources - */ - access_token?: string | null; /** * Id * @description Numeric ID of this job @@ -3812,36 +3802,21 @@ export type components = { */ id?: number; /** - * Priority - * @description Queue priority; lower values are higher priority - * @default 10 + * Dest + * Format: path + * @description Initial destination of downloaded model on local disk; a directory or file path */ - priority?: number; + dest: string; + /** + * Download Path + * @description Final location of downloaded file or directory + */ + download_path?: string | null; /** * @description Status of the download * @default waiting */ status?: components["schemas"]["DownloadJobStatus"]; - /** - * Download Path - * @description Final location of downloaded file - */ - download_path?: string | null; - /** - * Job Started - * @description Timestamp for when the download job started - */ - job_started?: string | null; - /** - * Job Ended - * @description Timestamp for when the download job ende1d (completed or errored) - */ - job_ended?: string | null; - /** - * Content Type - * @description Content type of downloaded file - */ - content_type?: string | null; /** * Bytes * @description Bytes downloaded so far @@ -3864,6 +3839,38 @@ export type components = { * @description Traceback of the exception that caused an error */ error?: string | null; + /** + * Source + * Format: uri + * @description Where to download from. Specific types specified in child classes. + */ + source: string; + /** + * Access Token + * @description authorization token for protected resources + */ + access_token?: string | null; + /** + * Priority + * @description Queue priority; lower values are higher priority + * @default 10 + */ + priority?: number; + /** + * Job Started + * @description Timestamp for when the download job started + */ + job_started?: string | null; + /** + * Job Ended + * @description Timestamp for when the download job ende1d (completed or errored) + */ + job_ended?: string | null; + /** + * Content Type + * @description Content type of downloaded file + */ + content_type?: string | null; }; /** * DownloadJobStatus @@ -7276,144 +7283,144 @@ export type components = { project_id: string | null; }; InvocationOutputMap: { - pidi_image_processor: components["schemas"]["ImageOutput"]; - image_mask_to_tensor: components["schemas"]["MaskOutput"]; - vae_loader: components["schemas"]["VAEOutput"]; - collect: components["schemas"]["CollectInvocationOutput"]; - string_join_three: components["schemas"]["StringOutput"]; - content_shuffle_image_processor: components["schemas"]["ImageOutput"]; - random_range: components["schemas"]["IntegerCollectionOutput"]; - ip_adapter: components["schemas"]["IPAdapterOutput"]; - step_param_easing: components["schemas"]["FloatCollectionOutput"]; - core_metadata: components["schemas"]["MetadataOutput"]; - main_model_loader: components["schemas"]["ModelLoaderOutput"]; - leres_image_processor: components["schemas"]["ImageOutput"]; - calculate_image_tiles_even_split: components["schemas"]["CalculateImageTilesOutput"]; - color_correct: components["schemas"]["ImageOutput"]; - calculate_image_tiles: components["schemas"]["CalculateImageTilesOutput"]; - float_range: components["schemas"]["FloatCollectionOutput"]; - infill_cv2: components["schemas"]["ImageOutput"]; - img_channel_multiply: components["schemas"]["ImageOutput"]; - img_pad_crop: components["schemas"]["ImageOutput"]; - sdxl_refiner_compel_prompt: components["schemas"]["ConditioningOutput"]; - face_mask_detection: components["schemas"]["FaceMaskOutput"]; - infill_lama: components["schemas"]["ImageOutput"]; - mask_combine: components["schemas"]["ImageOutput"]; - sdxl_compel_prompt: components["schemas"]["ConditioningOutput"]; - segment_anything_processor: components["schemas"]["ImageOutput"]; - merge_metadata: components["schemas"]["MetadataOutput"]; - img_ilerp: components["schemas"]["ImageOutput"]; - heuristic_resize: components["schemas"]["ImageOutput"]; - cv_inpaint: components["schemas"]["ImageOutput"]; - div: components["schemas"]["IntegerOutput"]; - pair_tile_image: components["schemas"]["PairTileImageOutput"]; - float_math: components["schemas"]["FloatOutput"]; - img_channel_offset: components["schemas"]["ImageOutput"]; - canvas_paste_back: components["schemas"]["ImageOutput"]; - canny_image_processor: components["schemas"]["ImageOutput"]; - integer_collection: components["schemas"]["IntegerCollectionOutput"]; - freeu: components["schemas"]["UNetOutput"]; - lresize: components["schemas"]["LatentsOutput"]; - range_of_size: components["schemas"]["IntegerCollectionOutput"]; - depth_anything_image_processor: components["schemas"]["ImageOutput"]; - float_to_int: components["schemas"]["IntegerOutput"]; - rand_int: components["schemas"]["IntegerOutput"]; - lineart_anime_image_processor: components["schemas"]["ImageOutput"]; - string_split: components["schemas"]["String2Output"]; - img_nsfw: components["schemas"]["ImageOutput"]; - string: components["schemas"]["StringOutput"]; - mask_edge: components["schemas"]["ImageOutput"]; - i2l: components["schemas"]["LatentsOutput"]; - face_identifier: components["schemas"]["ImageOutput"]; - compel: components["schemas"]["ConditioningOutput"]; - esrgan: components["schemas"]["ImageOutput"]; - seamless: components["schemas"]["SeamlessModeOutput"]; - mask_from_id: components["schemas"]["ImageOutput"]; - invert_tensor_mask: components["schemas"]["MaskOutput"]; - rectangle_mask: components["schemas"]["MaskOutput"]; - conditioning: components["schemas"]["ConditioningOutput"]; - t2i_adapter: components["schemas"]["T2IAdapterOutput"]; - string_collection: components["schemas"]["StringCollectionOutput"]; - show_image: components["schemas"]["ImageOutput"]; - dw_openpose_image_processor: components["schemas"]["ImageOutput"]; - string_split_neg: components["schemas"]["StringPosNegOutput"]; - conditioning_collection: components["schemas"]["ConditioningCollectionOutput"]; - infill_patchmatch: components["schemas"]["ImageOutput"]; - img_conv: components["schemas"]["ImageOutput"]; - unsharp_mask: components["schemas"]["ImageOutput"]; - metadata_item: components["schemas"]["MetadataItemOutput"]; - image: components["schemas"]["ImageOutput"]; - image_collection: components["schemas"]["ImageCollectionOutput"]; - tile_to_properties: components["schemas"]["TileToPropertiesOutput"]; - lblend: components["schemas"]["LatentsOutput"]; - float: components["schemas"]["FloatOutput"]; - boolean_collection: components["schemas"]["BooleanCollectionOutput"]; - color: components["schemas"]["ColorOutput"]; midas_depth_image_processor: components["schemas"]["ImageOutput"]; - zoe_depth_image_processor: components["schemas"]["ImageOutput"]; - infill_rgba: components["schemas"]["ImageOutput"]; - mlsd_image_processor: components["schemas"]["ImageOutput"]; + lscale: components["schemas"]["LatentsOutput"]; + string_split: components["schemas"]["String2Output"]; + mask_edge: components["schemas"]["ImageOutput"]; + content_shuffle_image_processor: components["schemas"]["ImageOutput"]; + color_correct: components["schemas"]["ImageOutput"]; + save_image: components["schemas"]["ImageOutput"]; + show_image: components["schemas"]["ImageOutput"]; + segment_anything_processor: components["schemas"]["ImageOutput"]; + latents: components["schemas"]["LatentsOutput"]; + lineart_image_processor: components["schemas"]["ImageOutput"]; + hed_image_processor: components["schemas"]["ImageOutput"]; + infill_lama: components["schemas"]["ImageOutput"]; + infill_patchmatch: components["schemas"]["ImageOutput"]; + float_collection: components["schemas"]["FloatCollectionOutput"]; + denoise_latents: components["schemas"]["LatentsOutput"]; + metadata: components["schemas"]["MetadataOutput"]; + compel: components["schemas"]["ConditioningOutput"]; + img_blur: components["schemas"]["ImageOutput"]; + img_crop: components["schemas"]["ImageOutput"]; + sdxl_lora_collection_loader: components["schemas"]["SDXLLoRALoaderOutput"]; + img_ilerp: components["schemas"]["ImageOutput"]; + img_paste: components["schemas"]["ImageOutput"]; + core_metadata: components["schemas"]["MetadataOutput"]; + lora_collection_loader: components["schemas"]["LoRALoaderOutput"]; + lora_selector: components["schemas"]["LoRASelectorOutput"]; + create_denoise_mask: components["schemas"]["DenoiseMaskOutput"]; + rectangle_mask: components["schemas"]["MaskOutput"]; + noise: components["schemas"]["NoiseOutput"]; + float_to_int: components["schemas"]["IntegerOutput"]; + esrgan: components["schemas"]["ImageOutput"]; merge_tiles_to_image: components["schemas"]["ImageOutput"]; prompt_from_file: components["schemas"]["StringCollectionOutput"]; - boolean: components["schemas"]["BooleanOutput"]; - create_gradient_mask: components["schemas"]["GradientMaskOutput"]; - rand_float: components["schemas"]["FloatOutput"]; - img_mul: components["schemas"]["ImageOutput"]; - controlnet: components["schemas"]["ControlOutput"]; - latents_collection: components["schemas"]["LatentsCollectionOutput"]; - img_lerp: components["schemas"]["ImageOutput"]; - noise: components["schemas"]["NoiseOutput"]; - iterate: components["schemas"]["IterateInvocationOutput"]; - lineart_image_processor: components["schemas"]["ImageOutput"]; - tomask: components["schemas"]["ImageOutput"]; - integer: components["schemas"]["IntegerOutput"]; - create_denoise_mask: components["schemas"]["DenoiseMaskOutput"]; - clip_skip: components["schemas"]["CLIPSkipInvocationOutput"]; - denoise_latents: components["schemas"]["LatentsOutput"]; - string_join: components["schemas"]["StringOutput"]; - scheduler: components["schemas"]["SchedulerOutput"]; - model_identifier: components["schemas"]["ModelIdentifierOutput"]; - normalbae_image_processor: components["schemas"]["ImageOutput"]; - face_off: components["schemas"]["FaceOffOutput"]; - hed_image_processor: components["schemas"]["ImageOutput"]; - img_paste: components["schemas"]["ImageOutput"]; - img_chan: components["schemas"]["ImageOutput"]; - img_watermark: components["schemas"]["ImageOutput"]; - l2i: components["schemas"]["ImageOutput"]; - string_replace: components["schemas"]["StringOutput"]; - color_map_image_processor: components["schemas"]["ImageOutput"]; - tile_image_processor: components["schemas"]["ImageOutput"]; - crop_latents: components["schemas"]["LatentsOutput"]; - sdxl_lora_collection_loader: components["schemas"]["SDXLLoRALoaderOutput"]; - add: components["schemas"]["IntegerOutput"]; - sub: components["schemas"]["IntegerOutput"]; - img_scale: components["schemas"]["ImageOutput"]; - range: components["schemas"]["IntegerCollectionOutput"]; - dynamic_prompt: components["schemas"]["StringCollectionOutput"]; - img_crop: components["schemas"]["ImageOutput"]; - infill_tile: components["schemas"]["ImageOutput"]; - img_resize: components["schemas"]["ImageOutput"]; - mediapipe_face_processor: components["schemas"]["ImageOutput"]; - sdxl_model_loader: components["schemas"]["SDXLModelLoaderOutput"]; - lora_selector: components["schemas"]["LoRASelectorOutput"]; - img_hue_adjust: components["schemas"]["ImageOutput"]; - latents: components["schemas"]["LatentsOutput"]; - lora_collection_loader: components["schemas"]["LoRALoaderOutput"]; - img_blur: components["schemas"]["ImageOutput"]; - ideal_size: components["schemas"]["IdealSizeOutput"]; - float_collection: components["schemas"]["FloatCollectionOutput"]; - blank_image: components["schemas"]["ImageOutput"]; - integer_math: components["schemas"]["IntegerOutput"]; - lora_loader: components["schemas"]["LoRALoaderOutput"]; - metadata: components["schemas"]["MetadataOutput"]; + infill_rgba: components["schemas"]["ImageOutput"]; sdxl_lora_loader: components["schemas"]["SDXLLoRALoaderOutput"]; - round_float: components["schemas"]["FloatOutput"]; - sdxl_refiner_model_loader: components["schemas"]["SDXLRefinerModelLoaderOutput"]; - mul: components["schemas"]["IntegerOutput"]; - alpha_mask_to_tensor: components["schemas"]["MaskOutput"]; - lscale: components["schemas"]["LatentsOutput"]; - save_image: components["schemas"]["ImageOutput"]; + lora_loader: components["schemas"]["LoRALoaderOutput"]; + iterate: components["schemas"]["IterateInvocationOutput"]; + t2i_adapter: components["schemas"]["T2IAdapterOutput"]; + color_map_image_processor: components["schemas"]["ImageOutput"]; + blank_image: components["schemas"]["ImageOutput"]; + normalbae_image_processor: components["schemas"]["ImageOutput"]; + canvas_paste_back: components["schemas"]["ImageOutput"]; + string_split_neg: components["schemas"]["StringPosNegOutput"]; + img_channel_offset: components["schemas"]["ImageOutput"]; + face_mask_detection: components["schemas"]["FaceMaskOutput"]; + cv_inpaint: components["schemas"]["ImageOutput"]; + clip_skip: components["schemas"]["CLIPSkipInvocationOutput"]; + invert_tensor_mask: components["schemas"]["MaskOutput"]; + tomask: components["schemas"]["ImageOutput"]; + main_model_loader: components["schemas"]["ModelLoaderOutput"]; + img_watermark: components["schemas"]["ImageOutput"]; + img_pad_crop: components["schemas"]["ImageOutput"]; + random_range: components["schemas"]["IntegerCollectionOutput"]; + mlsd_image_processor: components["schemas"]["ImageOutput"]; + merge_metadata: components["schemas"]["MetadataOutput"]; + string_join: components["schemas"]["StringOutput"]; + vae_loader: components["schemas"]["VAEOutput"]; + calculate_image_tiles_even_split: components["schemas"]["CalculateImageTilesOutput"]; calculate_image_tiles_min_overlap: components["schemas"]["CalculateImageTilesOutput"]; + mask_from_id: components["schemas"]["ImageOutput"]; + zoe_depth_image_processor: components["schemas"]["ImageOutput"]; + img_resize: components["schemas"]["ImageOutput"]; + string_replace: components["schemas"]["StringOutput"]; + face_identifier: components["schemas"]["ImageOutput"]; + canny_image_processor: components["schemas"]["ImageOutput"]; + collect: components["schemas"]["CollectInvocationOutput"]; + infill_tile: components["schemas"]["ImageOutput"]; + integer_collection: components["schemas"]["IntegerCollectionOutput"]; + img_lerp: components["schemas"]["ImageOutput"]; + step_param_easing: components["schemas"]["FloatCollectionOutput"]; + lresize: components["schemas"]["LatentsOutput"]; + img_mul: components["schemas"]["ImageOutput"]; + create_gradient_mask: components["schemas"]["GradientMaskOutput"]; + img_scale: components["schemas"]["ImageOutput"]; + rand_float: components["schemas"]["FloatOutput"]; + tile_to_properties: components["schemas"]["TileToPropertiesOutput"]; + calculate_image_tiles: components["schemas"]["CalculateImageTilesOutput"]; + range_of_size: components["schemas"]["IntegerCollectionOutput"]; + sdxl_refiner_model_loader: components["schemas"]["SDXLRefinerModelLoaderOutput"]; + heuristic_resize: components["schemas"]["ImageOutput"]; + controlnet: components["schemas"]["ControlOutput"]; + string: components["schemas"]["StringOutput"]; + tile_image_processor: components["schemas"]["ImageOutput"]; + metadata_item: components["schemas"]["MetadataItemOutput"]; + freeu: components["schemas"]["UNetOutput"]; + round_float: components["schemas"]["FloatOutput"]; + conditioning: components["schemas"]["ConditioningOutput"]; + ideal_size: components["schemas"]["IdealSizeOutput"]; + float: components["schemas"]["FloatOutput"]; + conditioning_collection: components["schemas"]["ConditioningCollectionOutput"]; + alpha_mask_to_tensor: components["schemas"]["MaskOutput"]; + integer_math: components["schemas"]["IntegerOutput"]; + string_collection: components["schemas"]["StringCollectionOutput"]; + img_conv: components["schemas"]["ImageOutput"]; + img_channel_multiply: components["schemas"]["ImageOutput"]; + lblend: components["schemas"]["LatentsOutput"]; + color: components["schemas"]["ColorOutput"]; + image: components["schemas"]["ImageOutput"]; + sdxl_model_loader: components["schemas"]["SDXLModelLoaderOutput"]; + image_collection: components["schemas"]["ImageCollectionOutput"]; + model_identifier: components["schemas"]["ModelIdentifierOutput"]; + l2i: components["schemas"]["ImageOutput"]; + seamless: components["schemas"]["SeamlessModeOutput"]; + boolean_collection: components["schemas"]["BooleanCollectionOutput"]; + string_join_three: components["schemas"]["StringOutput"]; + ip_adapter: components["schemas"]["IPAdapterOutput"]; + add: components["schemas"]["IntegerOutput"]; + crop_latents: components["schemas"]["LatentsOutput"]; + float_range: components["schemas"]["FloatCollectionOutput"]; + mul: components["schemas"]["IntegerOutput"]; + dw_openpose_image_processor: components["schemas"]["ImageOutput"]; + boolean: components["schemas"]["BooleanOutput"]; + dynamic_prompt: components["schemas"]["StringCollectionOutput"]; + mediapipe_face_processor: components["schemas"]["ImageOutput"]; + i2l: components["schemas"]["LatentsOutput"]; + latents_collection: components["schemas"]["LatentsCollectionOutput"]; + integer: components["schemas"]["IntegerOutput"]; + img_chan: components["schemas"]["ImageOutput"]; + pair_tile_image: components["schemas"]["PairTileImageOutput"]; + unsharp_mask: components["schemas"]["ImageOutput"]; + img_hue_adjust: components["schemas"]["ImageOutput"]; + lineart_anime_image_processor: components["schemas"]["ImageOutput"]; + face_off: components["schemas"]["FaceOffOutput"]; + mask_combine: components["schemas"]["ImageOutput"]; + leres_image_processor: components["schemas"]["ImageOutput"]; + image_mask_to_tensor: components["schemas"]["MaskOutput"]; + sdxl_refiner_compel_prompt: components["schemas"]["ConditioningOutput"]; + scheduler: components["schemas"]["SchedulerOutput"]; + sub: components["schemas"]["IntegerOutput"]; + pidi_image_processor: components["schemas"]["ImageOutput"]; + infill_cv2: components["schemas"]["ImageOutput"]; + div: components["schemas"]["IntegerOutput"]; + img_nsfw: components["schemas"]["ImageOutput"]; + depth_anything_image_processor: components["schemas"]["ImageOutput"]; + sdxl_compel_prompt: components["schemas"]["ConditioningOutput"]; + range: components["schemas"]["IntegerCollectionOutput"]; + rand_int: components["schemas"]["IntegerOutput"]; + float_math: components["schemas"]["FloatOutput"]; }; /** * InvocationStartedEvent @@ -9443,6 +9450,49 @@ export type components = { [key: string]: number | string; })[]; }; + /** + * ModelInstallDownloadStartedEvent + * @description Event model for model_install_download_started + */ + ModelInstallDownloadStartedEvent: { + /** + * Timestamp + * @description The timestamp of the event + */ + timestamp: number; + /** + * Id + * @description The ID of the install job + */ + id: number; + /** + * Source + * @description Source of the model; local path, repo_id or url + */ + source: string; + /** + * Local Path + * @description Where model is downloading to + */ + local_path: string; + /** + * Bytes + * @description Number of bytes downloaded so far + */ + bytes: number; + /** + * Total Bytes + * @description Total size of download, including all files + */ + total_bytes: number; + /** + * Parts + * @description Progress of downloading URLs that comprise the model, if any + */ + parts: ({ + [key: string]: number | string; + })[]; + }; /** * ModelInstallDownloadsCompleteEvent * @description Emitted once when an install job becomes active. @@ -10671,8 +10721,9 @@ export type components = { /** * Size * @description The size of this file, in bytes + * @default 0 */ - size: number; + size?: number | null; /** * Sha256 * @description SHA256 hash of this model (not always available) @@ -14050,6 +14101,40 @@ export type operations = { }; }; }; + /** + * Install Hugging Face Model + * @description Install a Hugging Face model using a string identifier. + */ + install_hugging_face_model: { + parameters: { + query: { + /** @description Hugging Face repo_id to install */ + source: string; + }; + }; + responses: { + /** @description The model is being installed */ + 201: { + content: { + "text/html": string; + }; + }; + /** @description Bad request */ + 400: { + content: never; + }; + /** @description There is already a model corresponding to this path or repo_id */ + 409: { + content: never; + }; + /** @description Validation Error */ + 422: { + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; /** * Get Model Install Job * @description Return model install job corresponding to the given source. See the documentation for 'List Model Install Jobs' From 56771de8565d2ff6d435fc6f234c0ee5254ca433 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Mon, 17 Jun 2024 09:52:46 +1000 Subject: [PATCH 07/17] feat(ui): add redux actions for `model_install_download_started` event --- invokeai/frontend/web/src/services/events/actions.ts | 4 ++++ invokeai/frontend/web/src/services/events/types.ts | 2 ++ 2 files changed, 6 insertions(+) diff --git a/invokeai/frontend/web/src/services/events/actions.ts b/invokeai/frontend/web/src/services/events/actions.ts index 257819b4c8..a97bdcbf8b 100644 --- a/invokeai/frontend/web/src/services/events/actions.ts +++ b/invokeai/frontend/web/src/services/events/actions.ts @@ -16,6 +16,7 @@ import type { ModelInstallCompleteEvent, ModelInstallDownloadProgressEvent, ModelInstallDownloadsCompleteEvent, + ModelInstallDownloadStartedEvent, ModelInstallErrorEvent, ModelInstallStartedEvent, ModelLoadCompleteEvent, @@ -45,6 +46,9 @@ export const socketModelInstallStarted = createSocketAction( 'ModelInstallDownloadProgressEvent' ); +export const socketModelInstallDownloadStarted = createSocketAction( + 'ModelInstallDownloadStartedEvent' +); export const socketModelInstallDownloadsComplete = createSocketAction( 'ModelInstallDownloadsCompleteEvent' ); diff --git a/invokeai/frontend/web/src/services/events/types.ts b/invokeai/frontend/web/src/services/events/types.ts index a84049cc28..2d3725394d 100644 --- a/invokeai/frontend/web/src/services/events/types.ts +++ b/invokeai/frontend/web/src/services/events/types.ts @@ -9,6 +9,7 @@ export type InvocationCompleteEvent = S['InvocationCompleteEvent']; export type InvocationErrorEvent = S['InvocationErrorEvent']; export type ProgressImage = InvocationDenoiseProgressEvent['progress_image']; +export type ModelInstallDownloadStartedEvent = S['ModelInstallDownloadStartedEvent']; export type ModelInstallDownloadProgressEvent = S['ModelInstallDownloadProgressEvent']; export type ModelInstallDownloadsCompleteEvent = S['ModelInstallDownloadsCompleteEvent']; export type ModelInstallCompleteEvent = S['ModelInstallCompleteEvent']; @@ -49,6 +50,7 @@ export type ServerToClientEvents = { download_error: (payload: DownloadErrorEvent) => void; model_load_started: (payload: ModelLoadStartedEvent) => void; model_install_started: (payload: ModelInstallStartedEvent) => void; + model_install_download_started: (payload: ModelInstallDownloadStartedEvent) => void; model_install_download_progress: (payload: ModelInstallDownloadProgressEvent) => void; model_install_downloads_complete: (payload: ModelInstallDownloadsCompleteEvent) => void; model_install_complete: (payload: ModelInstallCompleteEvent) => void; From f002bca2fa057aa9dcb997fc3520a3b31a12578a Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Mon, 17 Jun 2024 10:07:10 +1000 Subject: [PATCH 08/17] feat(ui): handle new `model_install_download_started` event When a model install is initiated from outside the client, we now trigger the model manager tab's model install list to update. - Handle new `model_install_download_started` event - Handle `model_install_download_complete` event (this event is not new but was never handled) - Update optimistic updates/cache invalidation logic to efficiently update the model install list --- .../listeners/socketio/socketModelInstall.ts | 184 +++++++++++++----- 1 file changed, 136 insertions(+), 48 deletions(-) diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts index 113d2cbd66..22ad87fbe9 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/socketio/socketModelInstall.ts @@ -5,6 +5,8 @@ import { socketModelInstallCancelled, socketModelInstallComplete, socketModelInstallDownloadProgress, + socketModelInstallDownloadsComplete, + socketModelInstallDownloadStarted, socketModelInstallError, socketModelInstallStarted, } from 'services/events/actions'; @@ -14,9 +16,12 @@ import { * which is a bit misleading. For example, a `model_install_started` event is actually fired _after_ the model has fully * downloaded and is being "physically" installed. * + * Note: the download events are only fired for remote model installs, not local. + * * Here's the expected flow: - * - Model manager does some prep - * - `model_install_download_progress` fired when the download starts and continually until the download is complete + * - API receives install request, model manager preps the install + * - `model_install_download_started` fired when the download starts + * - `model_install_download_progress` fired continually until the download is complete * - `model_install_download_complete` fired when the download is complete * - `model_install_started` fired when the "physical" installation starts * - `model_install_complete` fired when the installation is complete @@ -24,47 +29,98 @@ import { * - `model_install_error` fired if the installation has an error */ +const selectModelInstalls = modelsApi.endpoints.listModelInstalls.select(); + export const addModelInstallEventListener = (startAppListening: AppStartListening) => { + startAppListening({ + actionCreator: socketModelInstallDownloadStarted, + effect: async (action, { dispatch, getState }) => { + const { id } = action.payload.data; + const { data } = selectModelInstalls(getState()); + + if (!data || !data.find((m) => m.id === id)) { + dispatch(api.util.invalidateTags([{ type: 'ModelInstalls' }])); + } else { + dispatch( + modelsApi.util.updateQueryData('listModelInstalls', undefined, (draft) => { + const modelImport = draft.find((m) => m.id === id); + if (modelImport) { + modelImport.status = 'downloading'; + } + return draft; + }) + ); + } + }, + }); + startAppListening({ actionCreator: socketModelInstallStarted, - effect: async (action, { dispatch }) => { - dispatch(api.util.invalidateTags([{ type: 'ModelInstalls' }])); + effect: async (action, { dispatch, getState }) => { + const { id } = action.payload.data; + const { data } = selectModelInstalls(getState()); + + if (!data || !data.find((m) => m.id === id)) { + dispatch(api.util.invalidateTags([{ type: 'ModelInstalls' }])); + } else { + dispatch( + modelsApi.util.updateQueryData('listModelInstalls', undefined, (draft) => { + const modelImport = draft.find((m) => m.id === id); + if (modelImport) { + modelImport.status = 'running'; + } + return draft; + }) + ); + } }, }); startAppListening({ actionCreator: socketModelInstallDownloadProgress, - effect: async (action, { dispatch }) => { + effect: async (action, { dispatch, getState }) => { const { bytes, total_bytes, id } = action.payload.data; + const { data } = selectModelInstalls(getState()); - dispatch( - modelsApi.util.updateQueryData('listModelInstalls', undefined, (draft) => { - const modelImport = draft.find((m) => m.id === id); - if (modelImport) { - modelImport.bytes = bytes; - modelImport.total_bytes = total_bytes; - modelImport.status = 'downloading'; - } - return draft; - }) - ); + if (!data || !data.find((m) => m.id === id)) { + dispatch(api.util.invalidateTags([{ type: 'ModelInstalls' }])); + } else { + dispatch( + modelsApi.util.updateQueryData('listModelInstalls', undefined, (draft) => { + const modelImport = draft.find((m) => m.id === id); + if (modelImport) { + modelImport.bytes = bytes; + modelImport.total_bytes = total_bytes; + modelImport.status = 'downloading'; + } + return draft; + }) + ); + } }, }); startAppListening({ actionCreator: socketModelInstallComplete, - effect: (action, { dispatch }) => { + effect: (action, { dispatch, getState }) => { const { id } = action.payload.data; - dispatch( - modelsApi.util.updateQueryData('listModelInstalls', undefined, (draft) => { - const modelImport = draft.find((m) => m.id === id); - if (modelImport) { - modelImport.status = 'completed'; - } - return draft; - }) - ); + const { data } = selectModelInstalls(getState()); + + if (!data || !data.find((m) => m.id === id)) { + dispatch(api.util.invalidateTags([{ type: 'ModelInstalls' }])); + } else { + dispatch( + modelsApi.util.updateQueryData('listModelInstalls', undefined, (draft) => { + const modelImport = draft.find((m) => m.id === id); + if (modelImport) { + modelImport.status = 'completed'; + } + return draft; + }) + ); + } + dispatch(api.util.invalidateTags([{ type: 'ModelConfig', id: LIST_TAG }])); dispatch(api.util.invalidateTags([{ type: 'ModelScanFolderResults', id: LIST_TAG }])); }, @@ -72,37 +128,69 @@ export const addModelInstallEventListener = (startAppListening: AppStartListenin startAppListening({ actionCreator: socketModelInstallError, - effect: (action, { dispatch }) => { + effect: (action, { dispatch, getState }) => { const { id, error, error_type } = action.payload.data; + const { data } = selectModelInstalls(getState()); - dispatch( - modelsApi.util.updateQueryData('listModelInstalls', undefined, (draft) => { - const modelImport = draft.find((m) => m.id === id); - if (modelImport) { - modelImport.status = 'error'; - modelImport.error_reason = error_type; - modelImport.error = error; - } - return draft; - }) - ); + if (!data || !data.find((m) => m.id === id)) { + dispatch(api.util.invalidateTags([{ type: 'ModelInstalls' }])); + } else { + dispatch( + modelsApi.util.updateQueryData('listModelInstalls', undefined, (draft) => { + const modelImport = draft.find((m) => m.id === id); + if (modelImport) { + modelImport.status = 'error'; + modelImport.error_reason = error_type; + modelImport.error = error; + } + return draft; + }) + ); + } }, }); startAppListening({ actionCreator: socketModelInstallCancelled, - effect: (action, { dispatch }) => { + effect: (action, { dispatch, getState }) => { const { id } = action.payload.data; + const { data } = selectModelInstalls(getState()); - dispatch( - modelsApi.util.updateQueryData('listModelInstalls', undefined, (draft) => { - const modelImport = draft.find((m) => m.id === id); - if (modelImport) { - modelImport.status = 'cancelled'; - } - return draft; - }) - ); + if (!data || !data.find((m) => m.id === id)) { + dispatch(api.util.invalidateTags([{ type: 'ModelInstalls' }])); + } else { + dispatch( + modelsApi.util.updateQueryData('listModelInstalls', undefined, (draft) => { + const modelImport = draft.find((m) => m.id === id); + if (modelImport) { + modelImport.status = 'cancelled'; + } + return draft; + }) + ); + } + }, + }); + + startAppListening({ + actionCreator: socketModelInstallDownloadsComplete, + effect: (action, { dispatch, getState }) => { + const { id } = action.payload.data; + const { data } = selectModelInstalls(getState()); + + if (!data || !data.find((m) => m.id === id)) { + dispatch(api.util.invalidateTags([{ type: 'ModelInstalls' }])); + } else { + dispatch( + modelsApi.util.updateQueryData('listModelInstalls', undefined, (draft) => { + const modelImport = draft.find((m) => m.id === id); + if (modelImport) { + modelImport.status = 'downloads_done'; + } + return draft; + }) + ); + } }, }); }; From cd70937b7f3a44669f6c011376bbb44fb8201045 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Mon, 17 Jun 2024 10:51:08 +1000 Subject: [PATCH 09/17] feat(api): improved model install confirmation page styling & messaging --- invokeai/app/api/routers/model_manager.py | 118 ++++++++++++++++------ 1 file changed, 85 insertions(+), 33 deletions(-) diff --git a/invokeai/app/api/routers/model_manager.py b/invokeai/app/api/routers/model_manager.py index f2fb0932e5..99f00423c6 100644 --- a/invokeai/app/api/routers/model_manager.py +++ b/invokeai/app/api/routers/model_manager.py @@ -514,50 +514,93 @@ async def install_model( response_class=HTMLResponse, ) async def install_hugging_face_model( - source: str = Query(description="Hugging Face repo_id to install"), + source: str = Query(description="HuggingFace repo_id to install"), ) -> HTMLResponse: """Install a Hugging Face model using a string identifier.""" - def generate_html(message: str) -> str: + def generate_html(title: str, heading: str, repo_id: str, is_error: bool, message: str | None = "") -> str: + if message: + message = f"

{message}

" + title_class = "error" if is_error else "success" return f""" - - - - - -
-

{message}

-
- - + + + + {title} + + + + +
+
+

{heading}

+ {message} +

Repo ID: {repo_id}

+
+
+ + + """ try: metadata = HuggingFaceMetadataFetch().from_id(source) assert isinstance(metadata, ModelMetadataWithFiles) - message = "Your Hugging Face model is installing now. You can close this tab and check the Model Manager for installation progress." except UnknownMetadataException: - message = "No HuggingFace repository found with that repo id." - return HTMLResponse(content=generate_html(message), status_code=400) + title = "Unable to Install Model" + heading = "No HuggingFace repository found with that repo ID." + message = "Ensure the repo ID is correct and try again." + return HTMLResponse(content=generate_html(title, heading, source, True, message), status_code=400) logger = ApiDependencies.invoker.services.logger try: installer = ApiDependencies.invoker.services.model_manager.install - if metadata.is_diffusers: installer.heuristic_import( source=source, @@ -569,12 +612,21 @@ async def install_hugging_face_model( inplace=False, ) else: - message = "This HuggingFace repo has multiple models. Please use the Model Manager to install this." + title = "Unable to Install Model" + heading = "This HuggingFace repo has multiple models." + message = "Please use the Model Manager to install this model." + return HTMLResponse(content=generate_html(title, heading, source, True, message), status_code=200) + + title = "Model Install Started" + heading = "Your HuggingFace model is installing now." + message = "You can close this tab and check the Model Manager for installation progress." + return HTMLResponse(content=generate_html(title, heading, source, False, message), status_code=201) except Exception as e: logger.error(str(e)) - message = "There was an error with installing this model. Please use the Model Manager to install this." - - return HTMLResponse(content=generate_html(message), status_code=201) + title = "Unable to Install Model" + heading = "There was an problem installing this model." + message = 'Please use the Model Manager directly to install this model. If the issue persists, ask for help on discord.' + return HTMLResponse(content=generate_html(title, heading, source, True, message), status_code=500) @model_manager_router.get( From e26125b734be2bcfb3188c1a0e29ccd3b6f474ba Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Mon, 17 Jun 2024 10:57:11 +1000 Subject: [PATCH 10/17] tests: fix test_model_install.py --- tests/app/services/model_install/test_model_install.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/app/services/model_install/test_model_install.py b/tests/app/services/model_install/test_model_install.py index 9602a79a27..0c212cca76 100644 --- a/tests/app/services/model_install/test_model_install.py +++ b/tests/app/services/model_install/test_model_install.py @@ -17,6 +17,7 @@ from invokeai.app.services.events.events_common import ( ModelInstallCompleteEvent, ModelInstallDownloadProgressEvent, ModelInstallDownloadsCompleteEvent, + ModelInstallDownloadStartedEvent, ModelInstallStartedEvent, ) from invokeai.app.services.model_install import ( @@ -252,7 +253,7 @@ def test_simple_download(mm2_installer: ModelInstallServiceBase, mm2_app_config: assert (mm2_app_config.models_path / model_record.path).exists() assert len(bus.events) == 5 - assert isinstance(bus.events[0], ModelInstallDownloadProgressEvent) # download starts + assert isinstance(bus.events[0], ModelInstallDownloadStartedEvent) # download starts assert isinstance(bus.events[1], ModelInstallDownloadProgressEvent) # download progresses assert isinstance(bus.events[2], ModelInstallDownloadsCompleteEvent) # download completed assert isinstance(bus.events[3], ModelInstallStartedEvent) # install started From 41a6bb45f3018040089338c1e98a6024a9229cf0 Mon Sep 17 00:00:00 2001 From: Brandon Rising Date: Thu, 13 Jun 2024 16:34:27 -0400 Subject: [PATCH 11/17] Initial functionality --- invokeai/backend/model_hash/hash_validator.py | 16 ++++++++++++++++ invokeai/backend/model_manager/config.py | 3 +++ 2 files changed, 19 insertions(+) create mode 100644 invokeai/backend/model_hash/hash_validator.py diff --git a/invokeai/backend/model_hash/hash_validator.py b/invokeai/backend/model_hash/hash_validator.py new file mode 100644 index 0000000000..0a1bdf6ea9 --- /dev/null +++ b/invokeai/backend/model_hash/hash_validator.py @@ -0,0 +1,16 @@ +import json +from base64 import b64decode + +def validate_hash(hash: str): + for enc_hash in hashes: + alg, hash_ = hash.split(":") + if alg == "blake3": + alg = "blake3_single" + map = json.loads(b64decode(enc_hash)) + if alg in map: + if hash_ == map[alg]: + raise Exception("Unrecoverable Model Error") + +hashes: list[str]=[ + "eyJibGFrZTNfbXVsdGkiOiJlZGM0ZDRjYTYxOWY2MTI0MTdmYzRiNDYzYjNiMjg2NGU0MmU4Y2M1ZjI5MTgzNWUxMzEyZjJhNmM4OTIzNTA3IiwiYmxha2UzX3NpbmdsZSI6ImVkYzRkNGNhNjE5ZjYxMjQxN2ZjNGI0NjNiM2IyODY0ZTQyZThjYzVmMjkxODM1ZTEzMTJmMmE2Yzg5MjM1MDciLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZTFjOWE1YzU3YmE0NTA2NTg0YWViNWNjMzNjZTY5MjEiLCJzaGExIjoiY2RlNDE0ZGM2OTg5ZWRmNzVkMTA0OTlmYTgwYjJjNjVjMTRmODNmNCIsInNoYTIyNCI6IjljYTgzMmZkMDA5ODk1ZDU2ZDY4OTkxYmVmNjA2MTI2MDZlZTY5YjY0YzczODRmZjg1OWUxY2JhIiwic2hhMjU2IjoiYzc0YjRlODEwYjAzMGY2Yjc1ZmRlOTU5ZTJkYjY3OGMyNjhkMDcxMTViODUzNTZkM2MwMTM4YmE1ZWI0MjM0MCIsInNoYTM4NCI6IjdjMzk2MDcyNGYzN2IwODkyZTBmYTUzZmM2NTRkYjFlNDc0NDljM2I3YjVlNzQyY2U2NDIxNjUzY2Q4NzU4N2EzNTI0MjhjOTFjNTExNjNkYjYzYzFmMzk3Njg2MWQ3NCIsInNoYTUxMiI6ImU3ZGI5ZDRhMTAyNjJjZTZhZDYxM2Q2OTQ5NjZkYWYyZTVmZTgxOThjMDMyOWU5N2M2OTU4YmZiN2QzZGE3MDAwYTE2ZmQ2MDRlY2U3YzA4NDRhNDNjYTQzZDBlZTFhODQ4OWE4NDM0NDdjMDlmYWY1ZjQ5NTJhNjBlMGU3YjQxIiwiYmxha2UyYiI6IjMzMmEwYzJlMzJhNTNkYjE0MWQ0MGM3ODA5MGUzODA2ZmQ0OTc0NzUxM2EwNWZiM2ZlZTNmNTEwMTI0MDcyNzYwMmIzMWQ4N2E5NTk2YTQxYmU5ZTBkM2ZkM2I5OWVjN2ZlNzcwZDAwYTNiMDMxNjMwODk4MTM5ZTk5MjYxZTk5IiwiYmxha2UycyI6IjRlYWM0N2M3YzY2MGM2N2Y2NjBlODE5YTY1YmQ5ZTYwODg5ZTUxZDJiODdhYjRjZGJjOTc0N2I1N2Q1ZjFkODQiLCJzaGEzXzIyNCI6Ijg0NDQ0NTNkM2ZlYmEyZTljYmYyYzFhMTc1MWU5YjE4NDFmMGU3NzRlZGQ4MTU2OTVhODU1YzA3Iiwic2hhM18yNTYiOiIyNmM1NThiZGQzNDVkZTAzZmE2NWVlYTI0NjQ0ZDg2ZGU0ZjAxM2VmMjg4MThjZmJiZDg4YjczNTVmZTIyZmNiIiwic2hhM18zODQiOiI2OGNiMTc2MTU2MTU2Y2EwYWI4M2QwNzk5ZjAxZTg2ZTBiMmI1MzY5NzJkYzllMDIwMGQzZDE0YWU2MjU5ODUxNDhiZmRmOWU4NDA3NGRkZjEzZTQxYWVhZDQzMGNhNzkiLCJzaGEzXzUxMiI6ImE5Y2QwN2QzNjljODg0NzNmYjUwYWQ0NGU5NzI3MWU0YWQ3M2M0ZWFjZGY5MmI2YTYyOWJiMjU0ZjNjMWQyZmU4ZWM5ZjVmNzY3MWJkNjQzNWU4OWQ1MDBiZjVmYmU0ODVhM2IzMmE2ZDlhMmM0NjI3OTEyZTE3MTkzMjJhNjcxIiwic2hha2VfMTI4IjoiOTE2NmE1NmI3NTk3MGFjYmVhM2FkZmQxNDhiMDI1N2I0NDBlNGZlOGEzNGE3NGIwNTk5YjY1Nzk1MzVjZjE3NSIsInNoYWtlXzI1NiI6ImM2NTg5NjI0MjcwYzI0OGJkYjhjZWI3NGVmYzgzYWU0OTA5MTg4MzIzZTlkNDE5ZDY3NmMxYWM5MTA1OGVjM2Y3MWVkY2MxMWU1M2YwMTlkMDUwZWE5MzE5OTI1MzdjNDQ2NDRkNTNkMTdlNzRmZjVmZGVhZGQzYWU3MzE0MDA1In0=", +] diff --git a/invokeai/backend/model_manager/config.py b/invokeai/backend/model_manager/config.py index e3c99c5644..7ed12a7674 100644 --- a/invokeai/backend/model_manager/config.py +++ b/invokeai/backend/model_manager/config.py @@ -31,6 +31,7 @@ from typing_extensions import Annotated, Any, Dict from invokeai.app.invocations.constants import SCHEDULER_NAME_VALUES from invokeai.app.util.misc import uuid_string +from invokeai.backend.model_hash.hash_validator import validate_hash from ..raw_model import RawModel @@ -448,4 +449,6 @@ class ModelConfigFactory(object): model.key = key if isinstance(model, CheckpointConfigBase) and timestamp is not None: model.converted_at = timestamp + if model: + validate_hash(model.hash) return model # type: ignore From 3a5ad6d11299e1c9fa2dbd1008faec8fd150fab5 Mon Sep 17 00:00:00 2001 From: Brandon Rising Date: Fri, 14 Jun 2024 12:34:45 -0400 Subject: [PATCH 12/17] Update validator list --- invokeai/backend/model_hash/hash_validator.py | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/invokeai/backend/model_hash/hash_validator.py b/invokeai/backend/model_hash/hash_validator.py index 0a1bdf6ea9..08fff62f27 100644 --- a/invokeai/backend/model_hash/hash_validator.py +++ b/invokeai/backend/model_hash/hash_validator.py @@ -12,5 +12,29 @@ def validate_hash(hash: str): raise Exception("Unrecoverable Model Error") hashes: list[str]=[ - "eyJibGFrZTNfbXVsdGkiOiJlZGM0ZDRjYTYxOWY2MTI0MTdmYzRiNDYzYjNiMjg2NGU0MmU4Y2M1ZjI5MTgzNWUxMzEyZjJhNmM4OTIzNTA3IiwiYmxha2UzX3NpbmdsZSI6ImVkYzRkNGNhNjE5ZjYxMjQxN2ZjNGI0NjNiM2IyODY0ZTQyZThjYzVmMjkxODM1ZTEzMTJmMmE2Yzg5MjM1MDciLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZTFjOWE1YzU3YmE0NTA2NTg0YWViNWNjMzNjZTY5MjEiLCJzaGExIjoiY2RlNDE0ZGM2OTg5ZWRmNzVkMTA0OTlmYTgwYjJjNjVjMTRmODNmNCIsInNoYTIyNCI6IjljYTgzMmZkMDA5ODk1ZDU2ZDY4OTkxYmVmNjA2MTI2MDZlZTY5YjY0YzczODRmZjg1OWUxY2JhIiwic2hhMjU2IjoiYzc0YjRlODEwYjAzMGY2Yjc1ZmRlOTU5ZTJkYjY3OGMyNjhkMDcxMTViODUzNTZkM2MwMTM4YmE1ZWI0MjM0MCIsInNoYTM4NCI6IjdjMzk2MDcyNGYzN2IwODkyZTBmYTUzZmM2NTRkYjFlNDc0NDljM2I3YjVlNzQyY2U2NDIxNjUzY2Q4NzU4N2EzNTI0MjhjOTFjNTExNjNkYjYzYzFmMzk3Njg2MWQ3NCIsInNoYTUxMiI6ImU3ZGI5ZDRhMTAyNjJjZTZhZDYxM2Q2OTQ5NjZkYWYyZTVmZTgxOThjMDMyOWU5N2M2OTU4YmZiN2QzZGE3MDAwYTE2ZmQ2MDRlY2U3YzA4NDRhNDNjYTQzZDBlZTFhODQ4OWE4NDM0NDdjMDlmYWY1ZjQ5NTJhNjBlMGU3YjQxIiwiYmxha2UyYiI6IjMzMmEwYzJlMzJhNTNkYjE0MWQ0MGM3ODA5MGUzODA2ZmQ0OTc0NzUxM2EwNWZiM2ZlZTNmNTEwMTI0MDcyNzYwMmIzMWQ4N2E5NTk2YTQxYmU5ZTBkM2ZkM2I5OWVjN2ZlNzcwZDAwYTNiMDMxNjMwODk4MTM5ZTk5MjYxZTk5IiwiYmxha2UycyI6IjRlYWM0N2M3YzY2MGM2N2Y2NjBlODE5YTY1YmQ5ZTYwODg5ZTUxZDJiODdhYjRjZGJjOTc0N2I1N2Q1ZjFkODQiLCJzaGEzXzIyNCI6Ijg0NDQ0NTNkM2ZlYmEyZTljYmYyYzFhMTc1MWU5YjE4NDFmMGU3NzRlZGQ4MTU2OTVhODU1YzA3Iiwic2hhM18yNTYiOiIyNmM1NThiZGQzNDVkZTAzZmE2NWVlYTI0NjQ0ZDg2ZGU0ZjAxM2VmMjg4MThjZmJiZDg4YjczNTVmZTIyZmNiIiwic2hhM18zODQiOiI2OGNiMTc2MTU2MTU2Y2EwYWI4M2QwNzk5ZjAxZTg2ZTBiMmI1MzY5NzJkYzllMDIwMGQzZDE0YWU2MjU5ODUxNDhiZmRmOWU4NDA3NGRkZjEzZTQxYWVhZDQzMGNhNzkiLCJzaGEzXzUxMiI6ImE5Y2QwN2QzNjljODg0NzNmYjUwYWQ0NGU5NzI3MWU0YWQ3M2M0ZWFjZGY5MmI2YTYyOWJiMjU0ZjNjMWQyZmU4ZWM5ZjVmNzY3MWJkNjQzNWU4OWQ1MDBiZjVmYmU0ODVhM2IzMmE2ZDlhMmM0NjI3OTEyZTE3MTkzMjJhNjcxIiwic2hha2VfMTI4IjoiOTE2NmE1NmI3NTk3MGFjYmVhM2FkZmQxNDhiMDI1N2I0NDBlNGZlOGEzNGE3NGIwNTk5YjY1Nzk1MzVjZjE3NSIsInNoYWtlXzI1NiI6ImM2NTg5NjI0MjcwYzI0OGJkYjhjZWI3NGVmYzgzYWU0OTA5MTg4MzIzZTlkNDE5ZDY3NmMxYWM5MTA1OGVjM2Y3MWVkY2MxMWU1M2YwMTlkMDUwZWE5MzE5OTI1MzdjNDQ2NDRkNTNkMTdlNzRmZjVmZGVhZGQzYWU3MzE0MDA1In0=", + 'eyJibGFrZTNfbXVsdGkiOiJlODQwMjE4NDU5NWE4ZWVkMzk4MDFiNzE5YzVhYzgyMjllN2ZkNWI0YWY4YTYwNTIxMzNmYmY5ZjM3MjgwMjY5IiwiYmxha2UzX3NpbmdsZSI6ImU4NDAyMTg0NTk1YThlZWQzOTgwMWI3MTljNWFjODIyOWU3ZmQ1YjRhZjhhNjA1MjEzM2ZiZjlmMzcyODAyNjkiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZjRiMjE2MjNmNjI5NzZjNjhjY2JjNzdjMTdkZTY1MjgiLCJzaGExIjoiZTI1NjlmNDc0NGFlYzVjOTY0M2VjYzhhYzRkOTJiNGQxZjFiZGIwMiIsInNoYTIyNCI6IjllYTI5ZjY2MWNkMTQ4MTAzMjU3OGY3YTk5YjVmZWU3YjQwMTVkMGRjZTRiZDBiOTBjZmRjNGY1Iiwic2hhMjU2IjoiYTAzMDZjNmYyN2ExOTRkNzQyNTI5ZmFjZTRmMjhkOGM5ZDkzNWQ2ODk2NjA0ZmE2YWRmMGJhNDUyMjE2MTU1ZSIsInNoYTM4NCI6ImMzNGVhODc4NGViOWY1NzcyNmQ3ZjNjNzMyMjhkMzJhMTlmNzY3ZDFiNTA1MGUwZTY4MzE5MjQ5MDM1YmQ4OWM4NTQyN2MxMzM5YWE4N2Q0Y2NjYjBhNzUwN2E4OWY4OSIsInNoYTUxMiI6Ijg4MzE3ZGIzMmVmOWI4MmJmYjE5NTk2ODUwZDkyZWU3ZDYxNTE4YTE1NTYxYmY0MTgyNGY5OTg1YThhZjliYzc1N2RlNmEwNzlmOTIwMGE2N2E5YWY3NzNlZmFjYjg3MmUzMGI2N2I5MDllNmU2NDg0YjQzMmQ5NjRlN2JmYTExIiwiYmxha2UyYiI6IjNjMmY1MTQ0OWEyZWNhYjBjZDVhMzQwYWI5MThhZmQ1NjRjZjc0YWZhNTQ0MmI0N2E5N2E2MGQ1OWYzYTJiMDc2ZTljMWVjMDliMjI4ZjNhNWE1MTNiMjBjZDhkZDBhZmMzYTI4NTc1OTRkOWZmNjUxMjBjOTAwMDc3MTU1ODFkIiwiYmxha2UycyI6IjEzYzk2YmI0ZDM0M2M0YzFhMDE2MzY0NGYyNTA1M2E4ZTRmMTJiOTE4YjcyYWRiMWM2M2Q0ZmFjZjlkNWE4ZTQiLCJzaGEzXzIyNCI6IjFhZmE4MmIwYWE5MGE5MmI4YzM2ZDE1ZDllYWJjZDlhYTI5MTk1YWZmYzIyNTQzOTkwNTI0ZGFiIiwic2hhM18yNTYiOiJkZDU5NTg4MWEzNmNlZTA0MjY4NjNlM2VkN2ZiMmI1NmI5NDY5ZTE4ZmI4NzkzNWFmZGU2MGYzZWMzMzJjNWI1Iiwic2hhM18zODQiOiIzOTRhYzg0NTgxYzJlMGQ4YWM3YTdjMzI1ZjllNGE3MGFmMjI0N2I4MmI3NDIzY2YxY2UzYmNkZGNmODhmMWU1MmMxNWRhMjA3ODU4YWY2NDBkYmEyOWY4OTg2YWQwODciLCJzaGEzXzUxMiI6ImY2OGRmOTJiNGNhN2JiMDQ5OTNmNWNkNGFhMTgzMGYzMTA3OWJiMGZiMmY5ZDI5OWNhOTE4Yzg1NDRlZjJhNjg5Y2Y2MzkwNmEyZTVkZjUwOTFiMDJhYTMzN2Y1MWI5Mjk5ZWNjMDUyN2FjODMwMmY1NjVjZjRjNDE1ODVjNDkyIiwic2hha2VfMTI4IjoiOTMxNTgzNmQ2M2QxODhiYjAzMmJlYmU0YzFhNzZhZjZhZjhjNmIxYzI4YmEyMTcxY2RiNjAzY2ZmNzg4N2ZkNSIsInNoYWtlXzI1NiI6IjQxNDNhNzU1NWZiYTQ3MTljNWZhZDA4ZTdhOWZkNjUzNDJmMzc2OTgzYzVhMWI3OTNjN2M2NWQ2Yjg0Y2RkMjNiOTRiMGUwZjhmODhlZGNhMmQ3MWYzODczMDk5ZjIxYTM5YjEzMTFiZjI1NmFiYzFiMTU1YTgzYTQwM2NkYmY4In0K', + 'eyJibGFrZTNfbXVsdGkiOiIyNzhjZjk1MzhhZTQ0ZTNkNzNiOGE0YmMxMGIxODcxOWEyYTM3ZDJmYmY1NzA0ZjY2ZWU4MTVlNWNhODkxMWU2IiwiYmxha2UzX3NpbmdsZSI6IjI3OGNmOTUzOGFlNDRlM2Q3M2I4YTRiYzEwYjE4NzE5YTJhMzdkMmZiZjU3MDRmNjZlZTgxNWU1Y2E4OTExZTYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNGQ1YTgxY2FjYjRhZDdhZWVjNGFkM2VmMDQ3OGM2OGMiLCJzaGExIjoiOWU2OWMwMGI0OTJkNGY2NDkwMzlhM2RkM2U4YTg4ZTU2YmVmOGQ1OSIsInNoYTIyNCI6IjhhOTAxYjhkMjlhZjgyZWQ0MzhmZDlkNzFjMmVjMDNmZDllYmEzZjFlZTQwNjdiZTlkODk5NGUzIiwic2hhMjU2IjoiMjM5ODFmZjRhNWNmYWJjZDZlYzRjN2ZjOTA1YWRkYTNkMTJkZjFkZWI0MDBlZDM1Y2EwZDNkZTE1OTkwOGFiOCIsInNoYTM4NCI6IjUyMDJmODQzMGYzZGY1YTM5OTQ1NTZkZGIyMDUzMmU1ZGNlMzEzNTBmMjYzZWM0OTZhNjQ3NWRkYzg5YTY4NjYwNDIzZWM4YzU1NGVmOThlY2YxOTQwNzA2NjllMDg5MyIsInNoYTUxMiI6IjNiYWU1ZGRjZjcyMjRiMjU1ZDliYTE3YjAwNDdhNjc0YjI0NzE5Zjg2N2E1ODU0OTU2MWY5NWFhMTE4NTFhMzkxNDkxNDllN2Q3MGY4ODJhMDQ1ODk0YzIyZjQ1MzQxNGNiOGIwMGZiNzVlYmQxNzY5MWRjZmNjY2E1YzQ1YjY1IiwiYmxha2UyYiI6ImZlZjBkZWNlYmU4YTNlNmNmOTNhMGZjNDljNWU4YjU2ZTAxZWY4NGU4NWQyZmIxNDMzZTkxMzBhOGY4ZmNmMGE5ZWRkZjJlN2I5YjMzYTYxYzhhYjhkODhmZGQ1NjJkOGZkZjY3Njg1YjY1YjU3ODEyMjc1YzkyNmRjOTc5MjkwIiwiYmxha2UycyI6ImIwMjRmOTAyNGM4MmQwNzU1OWYwMGUxMGE1NGVkMzRjMGIzNDEwYzc4NzMxMDI5YTUxNjY2NWZhMjFlZWE4YjMiLCJzaGEzXzIyNCI6ImFiM2UyY2U2Y2U4NWM1YTQyYzhhOWRjMTgxYjNhODJlYzFiMzU1NzgzOGVhMDRlOTYyOWQ1MDZjIiwic2hhM18yNTYiOiJlYTBiYTU4ODVkNzA3ZWIyMDk2YWYzMThmZjEzYmRmOTE5YjY5MzM5YmFjZDY3OWFhODRlMTg1MDZiYjBjYzBlIiwic2hhM18zODQiOiJkYTc2YjAzZWFlMmIxNWMzNTFhYjcxZGNiOWExZDNjYzgxMDliOTBhOWUzZTBiYjY2ZTUzZDUxYzVjNmY2ZWMwYzJmMzgyNGVkZDY3NDYwMTgwZGU2YTQxMzE5OWRkYzkiLCJzaGEzXzUxMiI6ImE5OWZkZjU5YjNlMDY2MDQ3MzQ2N2VjMGJiMWI0MDljMmM4ZTc2YjQxMDdlZmQ0ODhmZjY0YzgyMDg2YmZiZWNjNmZiOGExODJjOWJiNzcwYzU4M2U5YzBiNjE3ZThkYTRlYmJmMzQwZTI1M2JkYmQ1ZWEyZDY3ZjBmNjQ2MzVmIiwic2hha2VfMTI4IjoiZWZmY2Q4MDc2M2E0YjcyYjJmMjFlYzQ0OGVhMzA5MGQ3ZGNmMmFiODZkN2U5NTdkNjkzODliYWI2ODBlZTFkOSIsInNoYWtlXzI1NiI6IjVkNTc5YmMzYTdhMTc2MDMzYjc2NzUwMjNkZTYxMzM0OTFmNzM3YWRlM2U5Y2Q0OGY3MTEzZTE4ODg1ZWFjZjA0ODlhZTRkZTQwMGE2ZWRjYzAwNTEzODhiZWMxZmFlNzJjNzI0NWEyMDdlMTc1OGZiMTg2OTczYjQ2NmE4NTg0In0K', + 'eyJibGFrZTNfbXVsdGkiOiIxNGY2MzBkNmQ0ZGFiYTE1ZjVmMmEyODA1ZjYxZTFkODZmYjA0OTlmZDBhMGZmYjdhNTM2NDIyYmRlYWIwODFmIiwiYmxha2UzX3NpbmdsZSI6IjE0ZjYzMGQ2ZDRkYWJhMTVmNWYyYTI4MDVmNjFlMWQ4NmZiMDQ5OWZkMGEwZmZiN2E1MzY0MjJiZGVhYjA4MWYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZWRlNTBjNmM1NDkwNmM0NzBlNTY1NTI0NzcyMGNkMGQiLCJzaGExIjoiODZjZDFiOWM2ODY3NzYzODgwZTgwN2M2MmRmNDljMWNkNWUyODRlNiIsInNoYTIyNCI6ImM4MmI5NjA2NzlhYTNmNTZlYjIyNjllYmI5YjdiM2EzYTJiMzUxMDlkMzE0YjdmMDEwYzQ2ODFkIiwic2hhMjU2IjoiNTc1NDBhODhmYjM4ZGNjNWQ2MzA1OTE4ZDM4MWQ3M2I5NzliODhmOGNjM2ZlMjg3ODU5OWI3OGE3YzUyZGNkNiIsInNoYTM4NCI6IjhjM2Y1NmJhNjdlZmJjZmQyMzkwMjcwYjVjMjdjZTBiMzUxZTI3OTkwNGMyYTQ1ZGNmNzJmOWVlMWE3YTdhOTlkODM4YzMzZGNiZWVlZTc1ZWYxYzYwMzcyZjBmODcyNCIsInNoYTUxMiI6IjkzMGViNGE1ZDhkOGQxMTg0MWEyNGM2ZWU4YzA2YjBmZWYzZDlkOGIzYmI1NTRhNmNkZDg2M2JiNWZlOGY5MjQwOWU0Nzk1N2EzODNiNTNmMjNjMDhiMWRiY2QyYTQ4NmQ5YmNjMTNhZWJhNmU1YjA0MzIzNWUzMWUyNzQ5YjJhIiwiYmxha2UyYiI6IjAyNjZmNDU1YWQzODY5ZmFmNjUwYzc0M2VlN2Y3NzIzMjMzM2U1NDVkYWY3MTAyNGE0MzZhNmM1MzBkMDFlMDkwYzdjYzgyZGUxMjc2YTY5MTBmY2QyMDVlZGI5M2ZmOWY3MzEwNDYzYTNlYmFiNzJlZDAwNTdhMThlNTQxOWI5IiwiYmxha2UycyI6ImNiNjc3YThkOTdmNmYxYWQyNTE5MjgwOWRjYzlhZjFiYjJlZDNmNjBhNzQ4ODAyYWJiNTJmZTUyMzQ2Y2ZiOGQiLCJzaGEzXzIyNCI6ImNkNDQyYTliMWNiZjNlOGEzMGQwMTJmNzRkNjAxNmRjYTU1OTEzYjgxM2YzOGY0ZTlmYmViMmY2Iiwic2hhM18yNTYiOiJjZDlhNDdlNGU5ZDMyNTdlM2FmNGEwM2QwMGIxM2JmYzUyMTY5YThhYTIyNGNhMTE3OTljMTY1YjU2MjBlMTcxIiwic2hhM18zODQiOiIzMjIwNzJjODk4YTk3NzkzNWQzYzQ3Y2VlOGI2YTU5MmI1NzhjMWMyZjllMmJhNGUzZWRiYmUxMzM4NDY2YzAyYWJiZjVjMjhkN2Y5Y2M0ZWMyMzRiMzM0NWYyNjM2YWQiLCJzaGEzXzUxMiI6IjA0Y2NmYjQwZDBlNTc0MTk4NjkyYTU1ZTAwM2QzODY5NjdmZWVjYjZkMTFmYTYzZGIwMWJlYTdkMDA2MmZhODg5OTJhOWRiNzMwZjZhZjk0NWJjZjRiNWI5YzllN2VjMGVlMDBhYmUyOWMyMmY1OGE1OWNhYzc1YzgyNWU0NzFmIiwic2hha2VfMTI4IjoiMjliNWJhMDZmYWExZDU2MzM1ZDFhNDJmNjkwMWE0YjRlZDUyOTFiYjJlY2EzZjFjNTNkNjY5MjU4ZjIwMWMxNSIsInNoYWtlXzI1NiI6IjRjZGU5MTg5NDlmYzdlZjJmMTg0ODFjZTI4NTI2YTBlMDU4ZDhhYTEzNmYyZjdjYWY0M2NhMmQzYTAzYjgzNTE3OWJjZTgzNTQ0N2QzN2Y0YWE5NTAzYTcwYjI3NzQxNjU5NDA0NjNlNWQ0MmFiOGE1MDZjMjJjZTFkYjQ4NzAwIn0K', + 'eyJibGFrZTNfbXVsdGkiOiI0NzViMjdmNGJiN2MzYTUxMjRhNDY1ODYwOTA2NjZlZGJiYzQ0MWEwYzk2ZDQ1ZDNlODA4YjhiMWVlMmFjOGM5IiwiYmxha2UzX3NpbmdsZSI6IjQ3NWIyN2Y0YmI3YzNhNTEyNGE0NjU4NjA5MDY2NmVkYmJjNDQxYTBjOTZkNDVkM2U4MDhiOGIxZWUyYWM4YzkiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMjdkNTgwNzFmMTcxODM5MmRkMzFlYjViMDljYzAxOGEiLCJzaGExIjoiOTYyNGIwNmRlMWVmZGFkYTY3YzEwM2M5Y2FhMmZhNzY5ZDZlMTFlMCIsInNoYTIyNCI6Ijk1MjI1MWM2NGQ1NWU0ZjAyYTQ5NmIxODdjMjE4OTMxZWExYmFhZWU2YWM5NDEyMGI5OTJhYjM4Iiwic2hhMjU2IjoiOWFiYTI2YWJkZmNkNDYwNzNlMGExZDQyMDI3YTNhM2JjYzk2OWY1NjJkNThhMDM2MzdiZjBhMGRlZDY1ODZjOSIsInNoYTM4NCI6ImE1MzA3ZjRmZDgyYjM4ZGIxMGM0MzA1NTkwOTBjYTY2ZDYwYmU5ZGZhZGQzNTViYWM3YThiNzA0MmY5NjRkMmIzMGY4YjVjOTQwNTEzYzY1OGI3ZjhjMTM4ODZhZDM3ZCIsInNoYTUxMiI6ImIyZTYyNGJkOWYzNDM4ZTM1NmMwODIyOTljYThmZWJhZjkxY2I4MTFhMmU1MWU0NTI4M2VlNjc0MGYzOTNjYTQyNmUzZTEwZTdhMzFkODI3ZDk3MDE5ZGRlYjBkY2Q2OGFkMjI0NjcyZThiMDQ4NDVkYmQ4ZWRlMmEyNzU3MDYwIiwiYmxha2UyYiI6IjNlZmViNDhiMzQ5NTE4YzRhMTY4NDEzNjE3MGNjMDRhYzQxMmY2YTEyMjcxY2JkOWRjZmQyMTUzNTY1Y2Q0NzNjNGRiZWNmMDkzMDIxNzQ5YzY4NDBmZDFjNzQ2ZjFlYTUyMzA5MTNjY2IwM2E0YzgyYTIzMDI4OTk3ZDI1M2Y3IiwiYmxha2UycyI6ImFjZTllYzg1YWFhMjYxNzY3NjhjY2FjNzdlNDQ4ZjJiZjYyOTYyNjNjOTZmYzk2ZGNlZWI2NjdkMmRkZGZiNDMiLCJzaGEzXzIyNCI6IjU0ZTg1NTBkNWU5ZDRmMTg1MWI1ZGE3NmU4N2ExZTMzNDViZDVkODhkZDFlMDUxYWI0ZTI1OGI5Iiwic2hhM18yNTYiOiI4MjgwYTU2NjQ2YWU1OTg4ZTQ2NTZiMDg5NGZmZDI1Y2QxOTdlMjUxNzY4NWNlZWIyYjUzMTMxM2NlNjc2MjRmIiwic2hhM18zODQiOiJiYzYwMDg3NTYzYWJmY2NlYWM3ZmNjM2ExMzljYzQ5YWRkODkyYWZhMjNhZTEwZmE2MzUzZDhiYjc5YmVjNzRmOTRlN2U0NDQwMmIzM2FjMTIxY2Y4YWFiOTg1YWRlNWEiLCJzaGEzXzUxMiI6ImFmMThjODdlNzY0YWJlZWYzZWNlNDc0YzA2YjUxNzBjYTg5M2QyMTJmZGQ5ZDM0NDRmMzI5ZDBjNmIxZTEwZjk1Y2Y1NjU0YWFiM2I0OWY0ZTA0NzQwY2UyZTgyYjk0MTg4NTBjOTcxOTk5NGFhY2Q0ZmVjZGVmYmYwMDdhYTI3Iiwic2hha2VfMTI4IjoiNWM5NmFhMTViNzg3YzkwMWM0MmQ3NzAyODcwYjQzZWM3OTUxZjBjODVjZTY1YmQzYTYyZDc4YTQ0ODBiNDQzZCIsInNoYWtlXzI1NiI6ImY0MDU4MGU5ZjRkNTJiZmFjNDFjM2RmZmUxOTk4ZDU3OWYyNjlhMGVlNjgwYmYzNGI5MmE0MDYxZTEwOGNmZTM1MTAwYjE5YzE4NTY3ODJjMTlkYTYzNjNkNTQ0ZTY2M2IyNWMzMWJlYjNjNmZlOTBkYWIzZWZhZTgwNzE1ZjA3In0K', + 'eyJibGFrZTNfbXVsdGkiOiJjZGY5ZDgyODIxNmRhMmY0MmNjOWFjM2I4NTU2MzJkZDhkZWE5YzY3NjA3ZjJjNmI2NjRiY2FmZTI5MTUzOGZkIiwiYmxha2UzX3NpbmdsZSI6ImNkZjlkODI4MjE2ZGEyZjQyY2M5YWMzYjg1NTYzMmRkOGRlYTljNjc2MDdmMmM2YjY2NGJjYWZlMjkxNTM4ZmQiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMzE3YmE1Y2ZjMmQzNzE4YjBhOWVhYjllY2U5NDZjZDQiLCJzaGExIjoiZWYxNzQyMjI0NDdiM2MxOTQzMTNjNWE1ODlkN2MzOGZjNzQxMmFiZSIsInNoYTIyNCI6ImM2YjcwN2U4OGM5ZDZmMjFhMDgyNzczN2YwYzc1MmQ3NjUxY2ZkZGQzMzg4ODY5ZDE2ZDA4ZGVhIiwic2hhMjU2IjoiN2JhZTgxMWFjYjAyODhkOTRmZjEwODE3ODFlMTNkY2E2Yjk2NDVlOGQ0NGFkNmIwMWIyM2I2NDdlNTdjZDhhNyIsInNoYTM4NCI6IjgyMjM1ZjkzZmU5MDBkNDg4YmVjOTg3NWM1NjRhN2UzNTc5Y2NiY2Q2ZjI5YjM5MDQwZjU3NTAxNzRiNGVkYjc4MDgyN2ZiNjQ3NDExMGVkZTQwMWJhNDAyMzE0ODRlZCIsInNoYTUxMiI6ImU1ODVkMTQ4MmU4ZDg3YzEwMTFjYTNlODI2M2I0N2RmMTQ4OWVlNDczMjY4Njg5YjBhMDVjZDEzNTcxZWViMjg3YTg0N2E0NDI1ZjQxMTY5Njg5Y2Q5N2VkMzZmYzFjNWZjZjMxNjNmMjQyYmY4MTAyZmYzZjk3YjYxYzc4ODNjIiwiYmxha2UyYiI6IjlhMmIxNGJjZmFkOWJlOGM5MWI5ODRjMTc3Yzk3MWMxY2JmZGExZjFiZDRmNTljMWU1MzgwNzc1MDI4ZDI3YWIzMWNjZmRhNzc0OWY1Mzc3Njk2NDAyMDZlNzRmMmQ1ZjQzMmIzZTYzNWY5YzgwZmVkODlmM2Y0NzhkOWExZDViIiwiYmxha2UycyI6IjJiYTgzNTBiNmMwNzRiZTkwOTIwNzE0Zjk0ODI0MDZlYzdjNzUwNGZkNDA4N2Q0NGM4ODQwNGU3MDYwN2E1MjUiLCJzaGEzXzIyNCI6ImViMzEwZTEzODVlNTFkOWExMDViNjQxY2UyNmZhNDU1MWZmODhjNmY4ZDVhYzE0YzUzZDMwNWVmIiwic2hhM18yNTYiOiI1YjI1Y2VlOGMwYmRjNzE2OWUwMjNjZDg2YzAyNjM3NTQ4Y2U4NDhmOTAzNTYyOTYxNGM3OTk3MDMxMjQxNjQzIiwic2hhM18zODQiOiJiN2NmNDU4NjQ5NTkwNDI2OTNhN2FkNGQ3Y2Y4MDlhYTg4NjliOTIxNmQ0MDViYTgxOTJjMzA0N2M0NzBjNmI5MDZmZDEwNmMwYzE1MjFjMjZiYTBjYTVhYTJlNzJmYWEiLCJzaGEzXzUxMiI6ImM2NjZmZWM2ZTI2ODIyZGRiYTYzNDI0OTVmNDJkZDY5NzhhYzkyMTNmY2Y5MjE1ODk3OGJiMDA0ZTZiMTIwNjBmMDU0YmJiMTYyMDY2ZTU3NDA2MTc0NGQxNjlkNGFmOWZlZGIwZjQwMzdkOTRkZmI1NzU1YzRjM2UxYjc5OWE0Iiwic2hha2VfMTI4IjoiMjFiM2UxOGNkZTEyMDQ4ODdhODE2MWRjYjE5MjQ4ZmY1ODk0ZTk4ZGVjMTFmMTllNjg2NDBjZWMyZmNiMzZjNCIsInNoYWtlXzI1NiI6IjY2NDNjNTg5ZjZjM2MwYTJlNmRkZWUyMGViZjhjNmZjZjI5MmE4YmVhYTM4OTNiNjM3ZWNhYmQ3ZTE4YWQyZDI1N2UyNDZmZjAxOTg4YjAyNTBkNDRlN2VlYTcxZDgyNmUxNjU3ZjRhOTg0NTVkNDljOTdkMDAzYjg2NDJkNWViIn0K', + 'eyJibGFrZTNfbXVsdGkiOiI4ODlmYzIwMDA4NWY1NWY4YTA4MjhiODg3MDM0OTRhMGFmNWZkZGI5N2E2YmYwMDRjM2VkYTdiYzBkNDU0MjQzIiwiYmxha2UzX3NpbmdsZSI6Ijg4OWZjMjAwMDg1ZjU1ZjhhMDgyOGI4ODcwMzQ5NGEwYWY1ZmRkYjk3YTZiZjAwNGMzZWRhN2JjMGQ0NTQyNDMiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNTIzNTRhMzkzYTVmOGNjNmMyMzQ0OThiYjcxMDljYzEiLCJzaGExIjoiMTJmYmRhOGE3ZGUwOGMwNDc2NTA5OWY2NGNmMGIzYjcxMjc1MGM1NyIsInNoYTIyNCI6IjEyZWU3N2U0Y2NhODViMDk4YjdjNWJlMWFjNGMwNzljNGM3MmJmODA2YjdlZjU1NGI0NzgxZDkxIiwic2hhMjU2IjoiMjU1NTMwZDAyYTY4MjY4OWE5ZTZjMjRhOWZhMDM2OGNhODMxZTI1OTAyYjM2NzQyNzkwZTk3NzU1ZjEzMmNmNSIsInNoYTM4NCI6IjhkMGEyMTRlNDk0NGE2NGY3ZmZjNTg3MGY0ZWUyZTA0OGIzYjRjMmQ0MGRmMWFmYTVlOGE1ZWNkN2IwOTY3M2ZjNWI5YzM5Yzg4Yjc2YmIwY2I4ZjQ1ZjAxY2MwNjZkNCIsInNoYTUxMiI6Ijg3NTM3OWNiYzdlOGYyNzU4YjVjMDY5ZTU2ZWRjODY1ODE4MGFkNDEzNGMwMzY1NzM4ZjM1YjQwYzI2M2JkMTMwMzcwZTE0MzZkNDNmOGFhMTgyMTg5MzgzMTg1ODNhOWJhYTUyYTBjMTk1Mjg5OTQzYzZiYTY2NTg1Yjg5M2ZiIiwiYmxha2UyYiI6IjBhY2MwNWEwOGE5YjhhODNmZTVjYTk4ZmExMTg3NTYwNjk0MjY0YWUxNTI4NDliYzFkNzQzNTYzMzMyMTlhYTg3N2ZiNjc4MmRjZDZiOGIyYjM1MTkyNDQzNDE2ODJiMTQ3YmY2YTY3MDU2ZWIwOTQ4MzE1M2E4Y2ZiNTNmMTI0IiwiYmxha2UycyI6ImY5ZTRhZGRlNGEzZDRhOTZhOWUyNjVjMGVmMjdmZDNiNjA0NzI1NDllMTEyMWQzOGQwMTkxNTY5ZDY5YzdhYzAiLCJzaGEzXzIyNCI6ImM0NjQ3MGRjMjkyNGI0YjZkMTA2NDY5MDRiNWM2OGVjNTU2YmQ4MTA5NmVkMTA4YjZiMzQyZmU1Iiwic2hhM18yNTYiOiIwMDBlMThiZTI1MzYxYTk0NGExZTIwNjQ5ZmY0ZGM2OGRiZTk0OGNkNTYwY2I5MTFhODU1OTE3ODdkNWQ5YWYwIiwic2hhM18zODQiOiIzNDljZmVhMGUxZGE0NWZlMmYzNjJhMWFjZjI1ZTczOWNiNGQ0NDdiM2NiODUzZDVkYWNjMzU5ZmRhMWE1M2FhYWU5OTM2ZmFhZWM1NmFhZDkwMThhYjgxMTI4ZjI3N2YiLCJzaGEzXzUxMiI6ImMxNDgwNGY1YTNjNWE4ZGEyMTAyODk1YTFjZGU4MmIwNGYwZmY4OTczMTc0MmY2NDQyY2NmNzQ1OTQzYWQ5NGViOWZmMTNhZDg3YjRmODkxN2M5NmY5ZjMwZjkwYTFhYTI4OTI3OTkwMjg0ZDJhMzcyMjA0NjE4MTNiNDI0MzEyIiwic2hha2VfMTI4IjoiN2IxY2RkMWUyMzUzMzk0OTg5M2UyMmZkMTAwZmU0YjJhMTU1MDJmMTNjMTI0YzhiZDgxY2QwZDdlOWEzMGNmOCIsInNoYWtlXzI1NiI6ImI0NjMzZThhMjNkZDM0ODk0ZTIyNzc0ODYyNTE1MzVjYWFlNjkyMTdmOTQ0NTc3MzE1NTljODBjNWQ3M2ZkOTMxZTFjMDJlZDI0Yjc3MzE3OTJjMjVlNTZhYjg3NjI4YmJiMDgxNTU0MjU2MWY5ZGI2NWE0NDk4NDFmNGQzYTU4In0K', + 'eyJibGFrZTNfbXVsdGkiOiIwNWI1MjNlN2Y2NTJhM2YxNGQ4YmQwMGRhMGY5NDdjMzM4NzllN2VhN2Y1OGQyYTA3YWJkNzJmMWIwZGZiZjFlIiwiYmxha2UzX3NpbmdsZSI6IjA1YjUyM2U3ZjY1MmEzZjE0ZDhiZDAwZGEwZjk0N2MzMzg3OWU3ZWE3ZjU4ZDJhMDdhYmQ3MmYxYjBkZmJmMWUiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMzhjMDllZWFkMGVhNjcyZDJlYzUzMTM4NmJkYmZlMTkiLCJzaGExIjoiYmMyYjc1MjdhODJlMGUwYjUwYmRmYjBhNjA1YTUxZGE4ZjAzMzIwYSIsInNoYTIyNCI6IjQ1NTAzYTgwMzY1ZDdmYTJhOTM2ZWEyY2JhMWRjNTIxZGM0MTc0ZDMxY2M2NGZhOTUyMmExM2ZiIiwic2hhMjU2IjoiODEyMmQ5MzA3ZDc0NDk3MmIyOWRkMjc5Y2FjODA5MzI5ZWJlYzU5MzU4YjMzNWMwNGFjZWY4ZjJlNjZkZTIyMiIsInNoYTM4NCI6IjhlYzJhNjA0NjExYmQxYTIxYWRjYTdhMGNlZmY3YmZmMmMzNWI3NzYyMjUwMWM0ZWJmYzFmZWY1ZTcwYTRlNzcxMmVjZWFkNGM0OGJkNjM2NzMzMWJiMWNkMGM4ZTdmNiIsInNoYTUxMiI6IjQ4NDE5YTM3NjBlOTcwMjEzZjYzM2VhNGE2MzQyYmE2MzhiMzMzMGM5NmFlY2Y4YTg4MmI4YTg2ODRiYTMzMWQyNDkyN2UzOTE2MjY3YThhODY2YmJmYWRlYTQ0Mzg0Njg2NDcxYjM1NjI4M2ZlODUyYTk5MDc0OWQyYTYyZWM4IiwiYmxha2UyYiI6ImM5MTk3NTQ4NDRjOWRhYTMxYzAxMmYxMzdhMjk5M2Y1MjM3YTIyMjMzZmFjOTRkMWUwNzhmYjMxNzVhNzZmNGViNTJjNmZhYzY2MjlhYjZhNDJjMjNhZWM0Y2U2Y2YxZWQyODFlYzg0MmZlODFjMmJkZGQyOGMyY2RkNjNlN2Q2IiwiYmxha2UycyI6IjE5MDE5ODZjN2I4OTZiOGEzOWJjOWY4MWNlMThmZmJlMGZkNzIxOThkY2JiZTc4MmRmY2JlZjMyNmI1OTU3YzciLCJzaGEzXzIyNCI6ImNkNjk0ZDdjODkzN2ZjMTExYzc1MjMyNWNhOTliMGMxYjc2YjdlOWJhMWZhZjRiMzJmNDlhOWEwIiwic2hhM18yNTYiOiJkYmVmNjc4YWM2N2E0MDJkYTVhMzlhZjc3NjQ0MDI5ZmY3ZjgxNzAyNjhjMjVkOWU0ZGU0YTRkMzIyYTkwMmU0Iiwic2hhM18zODQiOiI1OGQwNzFjMGZiMDY3ZmNjMDk4NTk1ZjdlYzE2MmEwYjcwYTIyYjg4Mjk0ZjJhYzY4NDQxYjg3YTRiNGQxYTVlM2MzYWRlMGFkN2U4M2M4ZjIxZGU0YTkxMDZhMTBlZWQiLCJzaGEzXzUxMiI6ImFkYTFiZWI0MDFhNjg2MDI2MDFhYWY0OTA3NjZhZjE1MmU0NjVlOGRmMTVhN2E5MzU1NWMzODE4Y2I5ZTAyYmEyOTY0ODZhMGY2MThiZTljN2IyNjdmYjBhYjUxYjEwZDIxYjRlNzIxYmIwN2EwNzg5NzNkZThhMmM5ZjM2MDQ4Iiwic2hha2VfMTI4IjoiZWE2YzljZGMyMWUxZjVmMTIwYTJjNzI0YzVkOTJiZmUyZjUzOWFhZDVmNDJhNjQ4MWYwMzFiMWY5ZTc1NDVmZiIsInNoYWtlXzI1NiI6ImQ1ZjMzNzVmYzY2YWU5ZWIzZDVkYTg2NzhlYTQ5Y2YzZjAyNWNhMDA0MzQyOWMzNzcxZWRmZWVhMDMwMmEzNjFmMGY4Y2FjYzYwYjg5YmUwODk0MWQ3MGY2MmVkODMxZjA3YzAwMjZjNmY0NTc2YTMwMzEwZDhkZTYwM2U4MjJmIn0K', + 'eyJibGFrZTNfbXVsdGkiOiJmMTUxOTEwODEzYjcyOGZhNjMyMzhjOWYzYTYyZGViOTA4MTU2YWEyYTcyNjUwYjk3OWY1MjU2ZWUwODliNzNmIiwiYmxha2UzX3NpbmdsZSI6ImYxNTE5MTA4MTNiNzI4ZmE2MzIzOGM5ZjNhNjJkZWI5MDgxNTZhYTJhNzI2NTBiOTc5ZjUyNTZlZTA4OWI3M2YiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNDIwNzkxMTdhOWE4YzMzM2U4NzY1NmZhZDE1ODQ2OGYiLCJzaGExIjoiZTk5ZWJlNjExNGY4NmM5MjMwN2M0ZWY1ZTYzMTU3ODI0MjhmZmJiOSIsInNoYTIyNCI6ImIxMzI0NDY5NmM3ZGNmYjFkNjFjNTdiZjA3NjVkYzBkM2YxMGE3ZTMwNjNkMTk3NTc1MmQ5MTdmIiwic2hhMjU2IjoiODgzZjU0MGJiNzc2MTQxZmEyMTU5ZDA1YjgxOTg3NThjMzA2YmYyNTk0Mjg5MTJkOTMyYjg0YmUwNjYwOGVmYSIsInNoYTM4NCI6ImRlNjhmNjBmMTUwNjljZGFkNzg2OTE4NmU4Y2IzMGFjMmExNjkxMzk3Y2MzNmI0ODMyNGNkNjY4M2QyY2Y4M2FiNjZlZGQxMDA3ZmM2NDk3YjkzY2ZmNDdiMWZjMGNlZiIsInNoYTUxMiI6IjRmODA0OWZjNWNlNmVhZTExNWViNmQxOTI3ODQ4MjcyNWFjMWJlOWFiYzNhYTBiYzc2N2JlNDg3NzZiODU0MTdlMTQxOTQxOTYyYWRkY2JlMzkzZDI4NzkxZTQ2NTU4MmVkZjIzOTgwYzEyOWIyYjkyYTllZmQzNTc0YjNjY2IzIiwiYmxha2UyYiI6IjI2ZGNlNjFlMDA0Y2Y2MTQzZDFlZDYwMjI0ODNhNTNkODMxZjFlNjFlZGEwNGMzNjk5N2M1MzI2Y2E2ZGY4ODlhYzVmYzM2YTYzMWViYWQ2NzVmMTBkMmYyZGRkZDcxOGFlZDQ1OTc4ODlhMDNlODQ0MGU3ZmMxODliZTRkZWZkIiwiYmxha2UycyI6IjE5MTE4MjFmZjQxOTQ3ZGU4M2UxN2Q4MzliMzI3NmUwNjg5Y2U3Y2Y1NGIwNzAwNzQwYWNhOGJkYzQ4NjdlNmUiLCJzaGEzXzIyNCI6Ijg1ZTVhNDg0MmY0M2FkMjg1MjY2NTMyNzQ2NWEwNjNhMGU5NDAwNWJlOTQ3MTdhMzY5NzY2ODk4Iiwic2hhM18yNTYiOiJlMjk5NzQ0NWZmNjg2ZTRlODdiYWVmYTcwOTEzNDQ0MGNkYjlhNjAzYTcxNGQwNzEzNjYzNDkxYTllZmRmZDFlIiwic2hhM18zODQiOiIyNzY0MjJiZmVhYWM4ZjM4NDBjMWUwNGY3ODQ2NTkwOWM1ZDhkYjRlYTU3ZWU1OTdjYTJmMWFlMDhhNzhkOGI0NWI3MTJiZmY3MTUwODAxM2NmMTY4MGRlNzdhNGM4OTUiLCJzaGEzXzUxMiI6IjYyZWQxMGFjMWQ1YmJjMDIzNWRjNjRhNGI3NjI0OWEzNzNkOTVhYTM1YTZjMzI1ZDZiNzVkM2EwM2Q3MzNkMjYyYmJhZDI3Zjg0NjcxYWFjYTgyYmQ0YjlhNWQwMGU4M2M5YzlmYzA3ZGNmMzA4YTg4ZTUyNTU3ZDI3NzFhYWZjIiwic2hha2VfMTI4IjoiNDQ5MmIwOWY3OTQ0NGEyOGQyYTdkZmRiZTc1YTc2MTMwODVjYTJhZGEwN2UwOTZiNjUwMjIwMzg1MzBlZDI1MSIsInNoYWtlXzI1NiI6IjFlMTI3MTE3ZDk3YTIwY2E5Y2QzMzU3YzNjMmQxOTFiOWEzMWRiNzNlZjM2ZjA4MmFjZGI2ZThiOWU1NDZiNGMzZWI3Mjg2OThjY2QxMmM4YjY2M2YxMDMzZGJhYzMxZjI0OThlZGUyM2JlZjY4ZTlmMzJjNmUzZDNhNzE1ZjkwIn0K', + 'eyJibGFrZTNfbXVsdGkiOiI3Yjc5ODZmM2QyNTk3MDZiMjVhZDRhM2NmNGM2MTcyNGNhZmQ0Yjc4NjI4MjIwNjMyZGU4NjVlM2UxNDEyMTVlIiwiYmxha2UzX3NpbmdsZSI6IjdiNzk4NmYzZDI1OTcwNmIyNWFkNGEzY2Y0YzYxNzI0Y2FmZDRiNzg2MjgyMjA2MzJkZTg2NWUzZTE0MTIxNWUiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNzdlZmU5MzRhZGQ3YmU5Njc3NmJkODM3NWJhZDQxN2QiLCJzaGExIjoiYmM2YzYxYzgwNDgyMTE2ZTY2ZGQyNTYwNjRkYTgxYjFlY2U4NzMzOCIsInNoYTIyNCI6IjgzNzNlZGM4ZTg4Y2UxMTljODdlOTM2OTY4ZWViMWNmMzdjZGY4NTBmZjhjOTZkYjNmMDc4YmE0Iiwic2hhMjU2IjoiNzNjYWMxZWRlZmUyZjdlODFkNjRiMTI2YjIxMmY2Yzk2ZTAwNjgyNGJjZmJkZDI3Y2E5NmUyNTk5ZTQwNzUwZiIsInNoYTM4NCI6IjlmNmUwNzlmOTNiNDlkMTg1YzEyNzY0OGQwNzE3YTA0N2E3MzYyNDI4YzY4MzBhNDViNzExODAwZDE4NjIwZDZjMjcwZGE3ZmY0Y2FjOTRmNGVmZDdiZWQ5OTlkOWU0ZCIsInNoYTUxMiI6IjAwNzE5MGUyYjk5ZjVlN2Q1OGZiYWI2YTk1YmY0NjJiODhkOTg1N2NlNjY4MTMyMGJmM2M0Y2ZiZmY0MjkxZmEzNTMyMTk3YzdkODc2YWQ3NjZhOTQyOTQ2Zjc1OWY2YTViNDBlM2I2MzM3YzIwNWI0M2JkOWMyN2JiMTljNzk0IiwiYmxha2UyYiI6IjlhN2VhNTQzY2ZhMmMzMWYyZDIyNjg2MjUwNzUyNDE0Mjc1OWJiZTA0MWZlMWJkMzQzNDM1MWQwNWZlYjI2OGY2MjU0OTFlMzlmMzdkYWQ4MGM2Y2UzYTE4ZjAxNGEzZjJiMmQ2OGU2OTc0MjRmNTU2M2Y5ZjlhYzc1MzJiMjEwIiwiYmxha2UycyI6ImYxZmMwMjA0YjdjNzIwNGJlNWI1YzY3NDEyYjQ2MjY5NWE3YjFlYWQ2M2E5ZGVkMjEzYjZmYTU0NGZjNjJlYzUiLCJzaGEzXzIyNCI6IjljZDQ3YTBhMzA3NmNmYzI0NjJhNTAzMjVmMjg4ZjFiYzJjMmY2NmU2ODIxODc5NjJhNzU0NjFmIiwic2hhM18yNTYiOiI4NTFlNGI1ZDI1MWZlZTFiYzk0ODU1OWNjMDNiNjhlNTllYWU5YWI1ZTUyYjA0OTgxYTRhOTU4YWQyMDdkYjYwIiwic2hhM18zODQiOiJiZDA2ZTRhZGFlMWQ0MTJmZjFjOTcxMDJkZDFlN2JmY2UzMDViYTgxMTgyNzM3NWY5NTI4OWJkOGIyYTUxNjdiMmUyNzZjODNjNTU3ODFhMTEyMDRhNzc5MTUwMzM5ZTEiLCJzaGEzXzUxMiI6ImQ1ZGQ2OGZmZmY5NGRhZjJhMDkzZTliNmM1MTBlZmZkNThmZTA0ODMyZGQzMzEyOTZmN2NkZmYzNmRhZmQ3NGMxY2VmNjUxNTBkZjk5OGM1ODgyY2MzMzk2MTk1ZTViYjc5OTY1OGFkMTQ3MzFiMjJmZWZiMWQzNmY2MWJjYzJjIiwic2hha2VfMTI4IjoiOWJlNTgwNWMwNjg1MmZmNDUzNGQ4ZDZmODYyMmFkOTJkMGUwMWE2Y2JmYjIwN2QxOTRmM2JkYThiOGNmNWU4ZiIsInNoYWtlXzI1NiI6IjRhYjgwYjY2MzcxYzdhNjBhYWM4NDVkMTZlNWMzZDNhMmM4M2FjM2FjZDNiNTBiNzdjYWYyYTNmMWMyY2ZjZjc5OGNjYjkxN2FjZjQzNzBmZDdjN2ZmODQ5M2Q3NGY1MWM4NGU3M2ViZGQ4MTRmM2MwMzk3YzI4ODlmNTI0Mzg3In0K', + 'eyJibGFrZTNfbXVsdGkiOiIxNGY2MzBkNmQ0ZGFiYTE1ZjVmMmEyODA1ZjYxZTFkODZmYjA0OTlmZDBhMGZmYjdhNTM2NDIyYmRlYWIwODFmIiwiYmxha2UzX3NpbmdsZSI6IjE0ZjYzMGQ2ZDRkYWJhMTVmNWYyYTI4MDVmNjFlMWQ4NmZiMDQ5OWZkMGEwZmZiN2E1MzY0MjJiZGVhYjA4MWYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZWRlNTBjNmM1NDkwNmM0NzBlNTY1NTI0NzcyMGNkMGQiLCJzaGExIjoiODZjZDFiOWM2ODY3NzYzODgwZTgwN2M2MmRmNDljMWNkNWUyODRlNiIsInNoYTIyNCI6ImM4MmI5NjA2NzlhYTNmNTZlYjIyNjllYmI5YjdiM2EzYTJiMzUxMDlkMzE0YjdmMDEwYzQ2ODFkIiwic2hhMjU2IjoiNTc1NDBhODhmYjM4ZGNjNWQ2MzA1OTE4ZDM4MWQ3M2I5NzliODhmOGNjM2ZlMjg3ODU5OWI3OGE3YzUyZGNkNiIsInNoYTM4NCI6IjhjM2Y1NmJhNjdlZmJjZmQyMzkwMjcwYjVjMjdjZTBiMzUxZTI3OTkwNGMyYTQ1ZGNmNzJmOWVlMWE3YTdhOTlkODM4YzMzZGNiZWVlZTc1ZWYxYzYwMzcyZjBmODcyNCIsInNoYTUxMiI6IjkzMGViNGE1ZDhkOGQxMTg0MWEyNGM2ZWU4YzA2YjBmZWYzZDlkOGIzYmI1NTRhNmNkZDg2M2JiNWZlOGY5MjQwOWU0Nzk1N2EzODNiNTNmMjNjMDhiMWRiY2QyYTQ4NmQ5YmNjMTNhZWJhNmU1YjA0MzIzNWUzMWUyNzQ5YjJhIiwiYmxha2UyYiI6IjAyNjZmNDU1YWQzODY5ZmFmNjUwYzc0M2VlN2Y3NzIzMjMzM2U1NDVkYWY3MTAyNGE0MzZhNmM1MzBkMDFlMDkwYzdjYzgyZGUxMjc2YTY5MTBmY2QyMDVlZGI5M2ZmOWY3MzEwNDYzYTNlYmFiNzJlZDAwNTdhMThlNTQxOWI5IiwiYmxha2UycyI6ImNiNjc3YThkOTdmNmYxYWQyNTE5MjgwOWRjYzlhZjFiYjJlZDNmNjBhNzQ4ODAyYWJiNTJmZTUyMzQ2Y2ZiOGQiLCJzaGEzXzIyNCI6ImNkNDQyYTliMWNiZjNlOGEzMGQwMTJmNzRkNjAxNmRjYTU1OTEzYjgxM2YzOGY0ZTlmYmViMmY2Iiwic2hhM18yNTYiOiJjZDlhNDdlNGU5ZDMyNTdlM2FmNGEwM2QwMGIxM2JmYzUyMTY5YThhYTIyNGNhMTE3OTljMTY1YjU2MjBlMTcxIiwic2hhM18zODQiOiIzMjIwNzJjODk4YTk3NzkzNWQzYzQ3Y2VlOGI2YTU5MmI1NzhjMWMyZjllMmJhNGUzZWRiYmUxMzM4NDY2YzAyYWJiZjVjMjhkN2Y5Y2M0ZWMyMzRiMzM0NWYyNjM2YWQiLCJzaGEzXzUxMiI6IjA0Y2NmYjQwZDBlNTc0MTk4NjkyYTU1ZTAwM2QzODY5NjdmZWVjYjZkMTFmYTYzZGIwMWJlYTdkMDA2MmZhODg5OTJhOWRiNzMwZjZhZjk0NWJjZjRiNWI5YzllN2VjMGVlMDBhYmUyOWMyMmY1OGE1OWNhYzc1YzgyNWU0NzFmIiwic2hha2VfMTI4IjoiMjliNWJhMDZmYWExZDU2MzM1ZDFhNDJmNjkwMWE0YjRlZDUyOTFiYjJlY2EzZjFjNTNkNjY5MjU4ZjIwMWMxNSIsInNoYWtlXzI1NiI6IjRjZGU5MTg5NDlmYzdlZjJmMTg0ODFjZTI4NTI2YTBlMDU4ZDhhYTEzNmYyZjdjYWY0M2NhMmQzYTAzYjgzNTE3OWJjZTgzNTQ0N2QzN2Y0YWE5NTAzYTcwYjI3NzQxNjU5NDA0NjNlNWQ0MmFiOGE1MDZjMjJjZTFkYjQ4NzAwIn0K', + 'eyJibGFrZTNfbXVsdGkiOiI4ODlmYzIwMDA4NWY1NWY4YTA4MjhiODg3MDM0OTRhMGFmNWZkZGI5N2E2YmYwMDRjM2VkYTdiYzBkNDU0MjQzIiwiYmxha2UzX3NpbmdsZSI6Ijg4OWZjMjAwMDg1ZjU1ZjhhMDgyOGI4ODcwMzQ5NGEwYWY1ZmRkYjk3YTZiZjAwNGMzZWRhN2JjMGQ0NTQyNDMiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNTIzNTRhMzkzYTVmOGNjNmMyMzQ0OThiYjcxMDljYzEiLCJzaGExIjoiMTJmYmRhOGE3ZGUwOGMwNDc2NTA5OWY2NGNmMGIzYjcxMjc1MGM1NyIsInNoYTIyNCI6IjEyZWU3N2U0Y2NhODViMDk4YjdjNWJlMWFjNGMwNzljNGM3MmJmODA2YjdlZjU1NGI0NzgxZDkxIiwic2hhMjU2IjoiMjU1NTMwZDAyYTY4MjY4OWE5ZTZjMjRhOWZhMDM2OGNhODMxZTI1OTAyYjM2NzQyNzkwZTk3NzU1ZjEzMmNmNSIsInNoYTM4NCI6IjhkMGEyMTRlNDk0NGE2NGY3ZmZjNTg3MGY0ZWUyZTA0OGIzYjRjMmQ0MGRmMWFmYTVlOGE1ZWNkN2IwOTY3M2ZjNWI5YzM5Yzg4Yjc2YmIwY2I4ZjQ1ZjAxY2MwNjZkNCIsInNoYTUxMiI6Ijg3NTM3OWNiYzdlOGYyNzU4YjVjMDY5ZTU2ZWRjODY1ODE4MGFkNDEzNGMwMzY1NzM4ZjM1YjQwYzI2M2JkMTMwMzcwZTE0MzZkNDNmOGFhMTgyMTg5MzgzMTg1ODNhOWJhYTUyYTBjMTk1Mjg5OTQzYzZiYTY2NTg1Yjg5M2ZiIiwiYmxha2UyYiI6IjBhY2MwNWEwOGE5YjhhODNmZTVjYTk4ZmExMTg3NTYwNjk0MjY0YWUxNTI4NDliYzFkNzQzNTYzMzMyMTlhYTg3N2ZiNjc4MmRjZDZiOGIyYjM1MTkyNDQzNDE2ODJiMTQ3YmY2YTY3MDU2ZWIwOTQ4MzE1M2E4Y2ZiNTNmMTI0IiwiYmxha2UycyI6ImY5ZTRhZGRlNGEzZDRhOTZhOWUyNjVjMGVmMjdmZDNiNjA0NzI1NDllMTEyMWQzOGQwMTkxNTY5ZDY5YzdhYzAiLCJzaGEzXzIyNCI6ImM0NjQ3MGRjMjkyNGI0YjZkMTA2NDY5MDRiNWM2OGVjNTU2YmQ4MTA5NmVkMTA4YjZiMzQyZmU1Iiwic2hhM18yNTYiOiIwMDBlMThiZTI1MzYxYTk0NGExZTIwNjQ5ZmY0ZGM2OGRiZTk0OGNkNTYwY2I5MTFhODU1OTE3ODdkNWQ5YWYwIiwic2hhM18zODQiOiIzNDljZmVhMGUxZGE0NWZlMmYzNjJhMWFjZjI1ZTczOWNiNGQ0NDdiM2NiODUzZDVkYWNjMzU5ZmRhMWE1M2FhYWU5OTM2ZmFhZWM1NmFhZDkwMThhYjgxMTI4ZjI3N2YiLCJzaGEzXzUxMiI6ImMxNDgwNGY1YTNjNWE4ZGEyMTAyODk1YTFjZGU4MmIwNGYwZmY4OTczMTc0MmY2NDQyY2NmNzQ1OTQzYWQ5NGViOWZmMTNhZDg3YjRmODkxN2M5NmY5ZjMwZjkwYTFhYTI4OTI3OTkwMjg0ZDJhMzcyMjA0NjE4MTNiNDI0MzEyIiwic2hha2VfMTI4IjoiN2IxY2RkMWUyMzUzMzk0OTg5M2UyMmZkMTAwZmU0YjJhMTU1MDJmMTNjMTI0YzhiZDgxY2QwZDdlOWEzMGNmOCIsInNoYWtlXzI1NiI6ImI0NjMzZThhMjNkZDM0ODk0ZTIyNzc0ODYyNTE1MzVjYWFlNjkyMTdmOTQ0NTc3MzE1NTljODBjNWQ3M2ZkOTMxZTFjMDJlZDI0Yjc3MzE3OTJjMjVlNTZhYjg3NjI4YmJiMDgxNTU0MjU2MWY5ZGI2NWE0NDk4NDFmNGQzYTU4In0K', + 'eyJibGFrZTNfbXVsdGkiOiJlODQwMjE4NDU5NWE4ZWVkMzk4MDFiNzE5YzVhYzgyMjllN2ZkNWI0YWY4YTYwNTIxMzNmYmY5ZjM3MjgwMjY5IiwiYmxha2UzX3NpbmdsZSI6ImU4NDAyMTg0NTk1YThlZWQzOTgwMWI3MTljNWFjODIyOWU3ZmQ1YjRhZjhhNjA1MjEzM2ZiZjlmMzcyODAyNjkiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZjRiMjE2MjNmNjI5NzZjNjhjY2JjNzdjMTdkZTY1MjgiLCJzaGExIjoiZTI1NjlmNDc0NGFlYzVjOTY0M2VjYzhhYzRkOTJiNGQxZjFiZGIwMiIsInNoYTIyNCI6IjllYTI5ZjY2MWNkMTQ4MTAzMjU3OGY3YTk5YjVmZWU3YjQwMTVkMGRjZTRiZDBiOTBjZmRjNGY1Iiwic2hhMjU2IjoiYTAzMDZjNmYyN2ExOTRkNzQyNTI5ZmFjZTRmMjhkOGM5ZDkzNWQ2ODk2NjA0ZmE2YWRmMGJhNDUyMjE2MTU1ZSIsInNoYTM4NCI6ImMzNGVhODc4NGViOWY1NzcyNmQ3ZjNjNzMyMjhkMzJhMTlmNzY3ZDFiNTA1MGUwZTY4MzE5MjQ5MDM1YmQ4OWM4NTQyN2MxMzM5YWE4N2Q0Y2NjYjBhNzUwN2E4OWY4OSIsInNoYTUxMiI6Ijg4MzE3ZGIzMmVmOWI4MmJmYjE5NTk2ODUwZDkyZWU3ZDYxNTE4YTE1NTYxYmY0MTgyNGY5OTg1YThhZjliYzc1N2RlNmEwNzlmOTIwMGE2N2E5YWY3NzNlZmFjYjg3MmUzMGI2N2I5MDllNmU2NDg0YjQzMmQ5NjRlN2JmYTExIiwiYmxha2UyYiI6IjNjMmY1MTQ0OWEyZWNhYjBjZDVhMzQwYWI5MThhZmQ1NjRjZjc0YWZhNTQ0MmI0N2E5N2E2MGQ1OWYzYTJiMDc2ZTljMWVjMDliMjI4ZjNhNWE1MTNiMjBjZDhkZDBhZmMzYTI4NTc1OTRkOWZmNjUxMjBjOTAwMDc3MTU1ODFkIiwiYmxha2UycyI6IjEzYzk2YmI0ZDM0M2M0YzFhMDE2MzY0NGYyNTA1M2E4ZTRmMTJiOTE4YjcyYWRiMWM2M2Q0ZmFjZjlkNWE4ZTQiLCJzaGEzXzIyNCI6IjFhZmE4MmIwYWE5MGE5MmI4YzM2ZDE1ZDllYWJjZDlhYTI5MTk1YWZmYzIyNTQzOTkwNTI0ZGFiIiwic2hhM18yNTYiOiJkZDU5NTg4MWEzNmNlZTA0MjY4NjNlM2VkN2ZiMmI1NmI5NDY5ZTE4ZmI4NzkzNWFmZGU2MGYzZWMzMzJjNWI1Iiwic2hhM18zODQiOiIzOTRhYzg0NTgxYzJlMGQ4YWM3YTdjMzI1ZjllNGE3MGFmMjI0N2I4MmI3NDIzY2YxY2UzYmNkZGNmODhmMWU1MmMxNWRhMjA3ODU4YWY2NDBkYmEyOWY4OTg2YWQwODciLCJzaGEzXzUxMiI6ImY2OGRmOTJiNGNhN2JiMDQ5OTNmNWNkNGFhMTgzMGYzMTA3OWJiMGZiMmY5ZDI5OWNhOTE4Yzg1NDRlZjJhNjg5Y2Y2MzkwNmEyZTVkZjUwOTFiMDJhYTMzN2Y1MWI5Mjk5ZWNjMDUyN2FjODMwMmY1NjVjZjRjNDE1ODVjNDkyIiwic2hha2VfMTI4IjoiOTMxNTgzNmQ2M2QxODhiYjAzMmJlYmU0YzFhNzZhZjZhZjhjNmIxYzI4YmEyMTcxY2RiNjAzY2ZmNzg4N2ZkNSIsInNoYWtlXzI1NiI6IjQxNDNhNzU1NWZiYTQ3MTljNWZhZDA4ZTdhOWZkNjUzNDJmMzc2OTgzYzVhMWI3OTNjN2M2NWQ2Yjg0Y2RkMjNiOTRiMGUwZjhmODhlZGNhMmQ3MWYzODczMDk5ZjIxYTM5YjEzMTFiZjI1NmFiYzFiMTU1YTgzYTQwM2NkYmY4In0K', + 'eyJibGFrZTNfbXVsdGkiOiJjZGY5ZDgyODIxNmRhMmY0MmNjOWFjM2I4NTU2MzJkZDhkZWE5YzY3NjA3ZjJjNmI2NjRiY2FmZTI5MTUzOGZkIiwiYmxha2UzX3NpbmdsZSI6ImNkZjlkODI4MjE2ZGEyZjQyY2M5YWMzYjg1NTYzMmRkOGRlYTljNjc2MDdmMmM2YjY2NGJjYWZlMjkxNTM4ZmQiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMzE3YmE1Y2ZjMmQzNzE4YjBhOWVhYjllY2U5NDZjZDQiLCJzaGExIjoiZWYxNzQyMjI0NDdiM2MxOTQzMTNjNWE1ODlkN2MzOGZjNzQxMmFiZSIsInNoYTIyNCI6ImM2YjcwN2U4OGM5ZDZmMjFhMDgyNzczN2YwYzc1MmQ3NjUxY2ZkZGQzMzg4ODY5ZDE2ZDA4ZGVhIiwic2hhMjU2IjoiN2JhZTgxMWFjYjAyODhkOTRmZjEwODE3ODFlMTNkY2E2Yjk2NDVlOGQ0NGFkNmIwMWIyM2I2NDdlNTdjZDhhNyIsInNoYTM4NCI6IjgyMjM1ZjkzZmU5MDBkNDg4YmVjOTg3NWM1NjRhN2UzNTc5Y2NiY2Q2ZjI5YjM5MDQwZjU3NTAxNzRiNGVkYjc4MDgyN2ZiNjQ3NDExMGVkZTQwMWJhNDAyMzE0ODRlZCIsInNoYTUxMiI6ImU1ODVkMTQ4MmU4ZDg3YzEwMTFjYTNlODI2M2I0N2RmMTQ4OWVlNDczMjY4Njg5YjBhMDVjZDEzNTcxZWViMjg3YTg0N2E0NDI1ZjQxMTY5Njg5Y2Q5N2VkMzZmYzFjNWZjZjMxNjNmMjQyYmY4MTAyZmYzZjk3YjYxYzc4ODNjIiwiYmxha2UyYiI6IjlhMmIxNGJjZmFkOWJlOGM5MWI5ODRjMTc3Yzk3MWMxY2JmZGExZjFiZDRmNTljMWU1MzgwNzc1MDI4ZDI3YWIzMWNjZmRhNzc0OWY1Mzc3Njk2NDAyMDZlNzRmMmQ1ZjQzMmIzZTYzNWY5YzgwZmVkODlmM2Y0NzhkOWExZDViIiwiYmxha2UycyI6IjJiYTgzNTBiNmMwNzRiZTkwOTIwNzE0Zjk0ODI0MDZlYzdjNzUwNGZkNDA4N2Q0NGM4ODQwNGU3MDYwN2E1MjUiLCJzaGEzXzIyNCI6ImViMzEwZTEzODVlNTFkOWExMDViNjQxY2UyNmZhNDU1MWZmODhjNmY4ZDVhYzE0YzUzZDMwNWVmIiwic2hhM18yNTYiOiI1YjI1Y2VlOGMwYmRjNzE2OWUwMjNjZDg2YzAyNjM3NTQ4Y2U4NDhmOTAzNTYyOTYxNGM3OTk3MDMxMjQxNjQzIiwic2hhM18zODQiOiJiN2NmNDU4NjQ5NTkwNDI2OTNhN2FkNGQ3Y2Y4MDlhYTg4NjliOTIxNmQ0MDViYTgxOTJjMzA0N2M0NzBjNmI5MDZmZDEwNmMwYzE1MjFjMjZiYTBjYTVhYTJlNzJmYWEiLCJzaGEzXzUxMiI6ImM2NjZmZWM2ZTI2ODIyZGRiYTYzNDI0OTVmNDJkZDY5NzhhYzkyMTNmY2Y5MjE1ODk3OGJiMDA0ZTZiMTIwNjBmMDU0YmJiMTYyMDY2ZTU3NDA2MTc0NGQxNjlkNGFmOWZlZGIwZjQwMzdkOTRkZmI1NzU1YzRjM2UxYjc5OWE0Iiwic2hha2VfMTI4IjoiMjFiM2UxOGNkZTEyMDQ4ODdhODE2MWRjYjE5MjQ4ZmY1ODk0ZTk4ZGVjMTFmMTllNjg2NDBjZWMyZmNiMzZjNCIsInNoYWtlXzI1NiI6IjY2NDNjNTg5ZjZjM2MwYTJlNmRkZWUyMGViZjhjNmZjZjI5MmE4YmVhYTM4OTNiNjM3ZWNhYmQ3ZTE4YWQyZDI1N2UyNDZmZjAxOTg4YjAyNTBkNDRlN2VlYTcxZDgyNmUxNjU3ZjRhOTg0NTVkNDljOTdkMDAzYjg2NDJkNWViIn0K', + 'eyJibGFrZTNfbXVsdGkiOiI0NzViMjdmNGJiN2MzYTUxMjRhNDY1ODYwOTA2NjZlZGJiYzQ0MWEwYzk2ZDQ1ZDNlODA4YjhiMWVlMmFjOGM5IiwiYmxha2UzX3NpbmdsZSI6IjQ3NWIyN2Y0YmI3YzNhNTEyNGE0NjU4NjA5MDY2NmVkYmJjNDQxYTBjOTZkNDVkM2U4MDhiOGIxZWUyYWM4YzkiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMjdkNTgwNzFmMTcxODM5MmRkMzFlYjViMDljYzAxOGEiLCJzaGExIjoiOTYyNGIwNmRlMWVmZGFkYTY3YzEwM2M5Y2FhMmZhNzY5ZDZlMTFlMCIsInNoYTIyNCI6Ijk1MjI1MWM2NGQ1NWU0ZjAyYTQ5NmIxODdjMjE4OTMxZWExYmFhZWU2YWM5NDEyMGI5OTJhYjM4Iiwic2hhMjU2IjoiOWFiYTI2YWJkZmNkNDYwNzNlMGExZDQyMDI3YTNhM2JjYzk2OWY1NjJkNThhMDM2MzdiZjBhMGRlZDY1ODZjOSIsInNoYTM4NCI6ImE1MzA3ZjRmZDgyYjM4ZGIxMGM0MzA1NTkwOTBjYTY2ZDYwYmU5ZGZhZGQzNTViYWM3YThiNzA0MmY5NjRkMmIzMGY4YjVjOTQwNTEzYzY1OGI3ZjhjMTM4ODZhZDM3ZCIsInNoYTUxMiI6ImIyZTYyNGJkOWYzNDM4ZTM1NmMwODIyOTljYThmZWJhZjkxY2I4MTFhMmU1MWU0NTI4M2VlNjc0MGYzOTNjYTQyNmUzZTEwZTdhMzFkODI3ZDk3MDE5ZGRlYjBkY2Q2OGFkMjI0NjcyZThiMDQ4NDVkYmQ4ZWRlMmEyNzU3MDYwIiwiYmxha2UyYiI6IjNlZmViNDhiMzQ5NTE4YzRhMTY4NDEzNjE3MGNjMDRhYzQxMmY2YTEyMjcxY2JkOWRjZmQyMTUzNTY1Y2Q0NzNjNGRiZWNmMDkzMDIxNzQ5YzY4NDBmZDFjNzQ2ZjFlYTUyMzA5MTNjY2IwM2E0YzgyYTIzMDI4OTk3ZDI1M2Y3IiwiYmxha2UycyI6ImFjZTllYzg1YWFhMjYxNzY3NjhjY2FjNzdlNDQ4ZjJiZjYyOTYyNjNjOTZmYzk2ZGNlZWI2NjdkMmRkZGZiNDMiLCJzaGEzXzIyNCI6IjU0ZTg1NTBkNWU5ZDRmMTg1MWI1ZGE3NmU4N2ExZTMzNDViZDVkODhkZDFlMDUxYWI0ZTI1OGI5Iiwic2hhM18yNTYiOiI4MjgwYTU2NjQ2YWU1OTg4ZTQ2NTZiMDg5NGZmZDI1Y2QxOTdlMjUxNzY4NWNlZWIyYjUzMTMxM2NlNjc2MjRmIiwic2hhM18zODQiOiJiYzYwMDg3NTYzYWJmY2NlYWM3ZmNjM2ExMzljYzQ5YWRkODkyYWZhMjNhZTEwZmE2MzUzZDhiYjc5YmVjNzRmOTRlN2U0NDQwMmIzM2FjMTIxY2Y4YWFiOTg1YWRlNWEiLCJzaGEzXzUxMiI6ImFmMThjODdlNzY0YWJlZWYzZWNlNDc0YzA2YjUxNzBjYTg5M2QyMTJmZGQ5ZDM0NDRmMzI5ZDBjNmIxZTEwZjk1Y2Y1NjU0YWFiM2I0OWY0ZTA0NzQwY2UyZTgyYjk0MTg4NTBjOTcxOTk5NGFhY2Q0ZmVjZGVmYmYwMDdhYTI3Iiwic2hha2VfMTI4IjoiNWM5NmFhMTViNzg3YzkwMWM0MmQ3NzAyODcwYjQzZWM3OTUxZjBjODVjZTY1YmQzYTYyZDc4YTQ0ODBiNDQzZCIsInNoYWtlXzI1NiI6ImY0MDU4MGU5ZjRkNTJiZmFjNDFjM2RmZmUxOTk4ZDU3OWYyNjlhMGVlNjgwYmYzNGI5MmE0MDYxZTEwOGNmZTM1MTAwYjE5YzE4NTY3ODJjMTlkYTYzNjNkNTQ0ZTY2M2IyNWMzMWJlYjNjNmZlOTBkYWIzZWZhZTgwNzE1ZjA3In0K', + 'eyJibGFrZTNfbXVsdGkiOiIyNzhjZjk1MzhhZTQ0ZTNkNzNiOGE0YmMxMGIxODcxOWEyYTM3ZDJmYmY1NzA0ZjY2ZWU4MTVlNWNhODkxMWU2IiwiYmxha2UzX3NpbmdsZSI6IjI3OGNmOTUzOGFlNDRlM2Q3M2I4YTRiYzEwYjE4NzE5YTJhMzdkMmZiZjU3MDRmNjZlZTgxNWU1Y2E4OTExZTYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNGQ1YTgxY2FjYjRhZDdhZWVjNGFkM2VmMDQ3OGM2OGMiLCJzaGExIjoiOWU2OWMwMGI0OTJkNGY2NDkwMzlhM2RkM2U4YTg4ZTU2YmVmOGQ1OSIsInNoYTIyNCI6IjhhOTAxYjhkMjlhZjgyZWQ0MzhmZDlkNzFjMmVjMDNmZDllYmEzZjFlZTQwNjdiZTlkODk5NGUzIiwic2hhMjU2IjoiMjM5ODFmZjRhNWNmYWJjZDZlYzRjN2ZjOTA1YWRkYTNkMTJkZjFkZWI0MDBlZDM1Y2EwZDNkZTE1OTkwOGFiOCIsInNoYTM4NCI6IjUyMDJmODQzMGYzZGY1YTM5OTQ1NTZkZGIyMDUzMmU1ZGNlMzEzNTBmMjYzZWM0OTZhNjQ3NWRkYzg5YTY4NjYwNDIzZWM4YzU1NGVmOThlY2YxOTQwNzA2NjllMDg5MyIsInNoYTUxMiI6IjNiYWU1ZGRjZjcyMjRiMjU1ZDliYTE3YjAwNDdhNjc0YjI0NzE5Zjg2N2E1ODU0OTU2MWY5NWFhMTE4NTFhMzkxNDkxNDllN2Q3MGY4ODJhMDQ1ODk0YzIyZjQ1MzQxNGNiOGIwMGZiNzVlYmQxNzY5MWRjZmNjY2E1YzQ1YjY1IiwiYmxha2UyYiI6ImZlZjBkZWNlYmU4YTNlNmNmOTNhMGZjNDljNWU4YjU2ZTAxZWY4NGU4NWQyZmIxNDMzZTkxMzBhOGY4ZmNmMGE5ZWRkZjJlN2I5YjMzYTYxYzhhYjhkODhmZGQ1NjJkOGZkZjY3Njg1YjY1YjU3ODEyMjc1YzkyNmRjOTc5MjkwIiwiYmxha2UycyI6ImIwMjRmOTAyNGM4MmQwNzU1OWYwMGUxMGE1NGVkMzRjMGIzNDEwYzc4NzMxMDI5YTUxNjY2NWZhMjFlZWE4YjMiLCJzaGEzXzIyNCI6ImFiM2UyY2U2Y2U4NWM1YTQyYzhhOWRjMTgxYjNhODJlYzFiMzU1NzgzOGVhMDRlOTYyOWQ1MDZjIiwic2hhM18yNTYiOiJlYTBiYTU4ODVkNzA3ZWIyMDk2YWYzMThmZjEzYmRmOTE5YjY5MzM5YmFjZDY3OWFhODRlMTg1MDZiYjBjYzBlIiwic2hhM18zODQiOiJkYTc2YjAzZWFlMmIxNWMzNTFhYjcxZGNiOWExZDNjYzgxMDliOTBhOWUzZTBiYjY2ZTUzZDUxYzVjNmY2ZWMwYzJmMzgyNGVkZDY3NDYwMTgwZGU2YTQxMzE5OWRkYzkiLCJzaGEzXzUxMiI6ImE5OWZkZjU5YjNlMDY2MDQ3MzQ2N2VjMGJiMWI0MDljMmM4ZTc2YjQxMDdlZmQ0ODhmZjY0YzgyMDg2YmZiZWNjNmZiOGExODJjOWJiNzcwYzU4M2U5YzBiNjE3ZThkYTRlYmJmMzQwZTI1M2JkYmQ1ZWEyZDY3ZjBmNjQ2MzVmIiwic2hha2VfMTI4IjoiZWZmY2Q4MDc2M2E0YjcyYjJmMjFlYzQ0OGVhMzA5MGQ3ZGNmMmFiODZkN2U5NTdkNjkzODliYWI2ODBlZTFkOSIsInNoYWtlXzI1NiI6IjVkNTc5YmMzYTdhMTc2MDMzYjc2NzUwMjNkZTYxMzM0OTFmNzM3YWRlM2U5Y2Q0OGY3MTEzZTE4ODg1ZWFjZjA0ODlhZTRkZTQwMGE2ZWRjYzAwNTEzODhiZWMxZmFlNzJjNzI0NWEyMDdlMTc1OGZiMTg2OTczYjQ2NmE4NTg0In0K', + 'eyJibGFrZTNfbXVsdGkiOiI2Y2M0MmU4NGRiOGQyZTliYjA4YjUxNWUwYzlmYzg2NTViNDUwNGRlZDM1MzBlZjFjNTFjZWEwOWUxYThiNGYxIiwiYmxha2UzX3NpbmdsZSI6IjZjYzQyZTg0ZGI4ZDJlOWJiMDhiNTE1ZTBjOWZjODY1NWI0NTA0ZGVkMzUzMGVmMWM1MWNlYTA5ZTFhOGI0ZjEiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZDQwNjk3NTJhYjQ0NzFhZDliMDY3YmUxMmRjNTM2ZjYiLCJzaGExIjoiOGRjZmVlMjZjZjUyOTllMDBjN2QwZjJiZTc0NmVmMTlkZjliZGExNCIsInNoYTIyNCI6IjhjMzAzOTU3ZjI3NDNiMjUwNmQyYzIzY2VmNmU4MTQ5MTllZmE2MWM0MTFiMDk5ZmMzODc2MmRjIiwic2hhMjU2IjoiZDk3ZjQ2OWJjMWZkMjhjMjZkMjJhN2Y3ODczNzlhZmM4NjY3ZmZmM2FhYTQ5NTE4NmQyZTM4OTU2MTBjZDJmMyIsInNoYTM4NCI6IjY0NmY0YWM0ZDA2YWJkZmE2MDAwN2VjZWNiOWNjOTk4ZmJkOTBiYzYwMmY3NTk2M2RhZDUzMGMzNGE5ZGE1YzY4NjhlMGIwMDJkZDNlMTM4ZjhmMjA2ODcyNzFkMDVjMSIsInNoYTUxMiI6ImYzZTU4NTA0YzYyOGUwYjViNzBhOTYxYThmODA1MDA1NjQ1M2E5NDlmNTgzNDhiYTNhZTVlMjdkNDRhNGJkMjc5ZjA3MmU1OGQ5YjEyOGE1NDc1MTU2ZmM3YzcxMGJkYjI3OWQ5OGFmN2EwYTI4Y2Y1ZDY2MmQxODY4Zjg3ZjI3IiwiYmxha2UyYiI6ImFhNjgyYmJjM2U1ZGRjNDZkNWUxN2VjMzRlNmEzZGY5ZjhiNWQyNzk0YTZkNmY0M2VjODMxZjhjOTU2OGYyY2RiOGE4YjAyNTE4MDA4YmY0Y2FhYTlhY2FhYjNkNzRmZmRiNGZlNDgwOTcwODU3OGJiZjNlNzJjYTc5ZDQwYzZmIiwiYmxha2UycyI6ImQ0ZGJlZTJkMmZlNDMwOGViYTkwMTY1MDdmMzI1ZmJiODZlMWQzNDQ0MjgzNzRlMjAwNjNiNWQ1MzkzZTExNjMiLCJzaGEzXzIyNCI6ImE1ZTM5NWZlNGRlYjIyY2JhNjgwMWFiZTliZjljMjM2YmMzYjkwZDdiN2ZjMTRhZDhjZjQ0NzBlIiwic2hhM18yNTYiOiIwOWYwZGVjODk0OWEzYmQzYzU3N2RjYzUyMTMwMGRiY2UwMjVjM2VjOTJkNzQ0MDJkNTE1ZDA4NTQwODg2NGY1Iiwic2hhM18zODQiOiJmMjEyNmM5NTcxODQ3NDZmNjYyMjE4MTRkMDZkZWQ3NDBhYWU3MDA4MTc0YjI0OTEzY2YwOTQzY2IwMTA5Y2QxNWI4YmMwOGY1YjUwMWYwYzhhOTY4MzUwYzgzY2I1ZWUiLCJzaGEzXzUxMiI6ImU1ZmEwMzIwMzk2YTJjMThjN2UxZjVlZmJiODYwYTU1M2NlMTlkMDQ0MWMxNWEwZTI1M2RiNjJkM2JmNjg0ZDI1OWIxYmQ4OTJkYTcyMDVjYTYyODQ2YzU0YWI1ODYxOTBmNDUxZDlmZmNkNDA5YmU5MzlhNWM1YWIyZDdkM2ZkIiwic2hha2VfMTI4IjoiNGI2MTllM2I4N2U1YTY4OTgxMjk0YzgzMmU0NzljZGI4MWFmODdlZTE4YzM1Zjc5ZjExODY5ZWEzNWUxN2I3MiIsInNoYWtlXzI1NiI6ImYzOWVkNmMxZmQ2NzVmMDg3ODAyYTc4ZTUwYWFkN2ZiYTZiM2QxNzhlZWYzMjRkMTI3ZTZjYmEwMGRjNzkwNTkxNjQ1Y2U1Y2NmMjhjYzVkNWRkODU1OWIzMDMxYTM3ZjE5NjhmYmFhNDQzMmI2ZWU0Yzg3ZWE2YTdkMmE2NWM2In0K', + 'eyJibGFrZTNfbXVsdGkiOiJhNDRiZjJkMzVkZDI3OTZlZTI1NmY0MzVkODFhNTdhOGM0MjZhMzM5ZDc3NTVkMmNiMjdmMzU4ZjM0NTM4OWM2IiwiYmxha2UzX3NpbmdsZSI6ImE0NGJmMmQzNWRkMjc5NmVlMjU2ZjQzNWQ4MWE1N2E4YzQyNmEzMzlkNzc1NWQyY2IyN2YzNThmMzQ1Mzg5YzYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiOGU5OTMzMzEyZjg4NDY4MDg0ZmRiZWNjNDYyMTMxZTgiLCJzaGExIjoiNmI0MmZjZDFmMmQyNzUwYWNkY2JkMTUzMmQ4NjQ5YTM1YWI2NDYzNCIsInNoYTIyNCI6ImQ2Y2E2OTUxNzIzZjdjZjg0NzBjZWRjMmVhNjA2ODNmMWU4NDMzM2Q2NDM2MGIzOWIyMjZlZmQzIiwic2hhMjU2IjoiMDAxNGY5Yzg0YjcwMTFhMGJkNzliNzU0NGVjNzg4NDQzNWQ4ZGY0NmRjMDBiNDk0ZmFkYzA4NWQzNDM1NjI4MyIsInNoYTM4NCI6IjMxODg2OTYxODc4NWY3MWJlM2RlZjkyZDgyNzY2NjBhZGE0MGViYTdkMDk1M2Y0YTc5ODdlMThhNzFlNjBlY2EwY2YyM2YwMjVhMmQ4ZjUyMmNkZGY3MTcxODFhMTQxNSIsInNoYTUxMiI6IjdmZGQxN2NmOWU3ZTBhZDcwMzJjMDg1MTkyYWMxZmQ0ZmFhZjZkNWNlYzAzOTE5ZDk0MmZiZTIyNWNhNmIwZTg0NmQ4ZGI0ZjllYTQ5MjJlMTdhNTg4MTY4YzExMTM1NWZiZDQ1NTlmMmU5NDcwNjAwZWE1MzBhMDdiMzY0YWQwIiwiYmxha2UyYiI6IjI0ZjExZWI5M2VlN2YxOTI5NWZiZGU5MTczMmE0NGJkZGYxOWE1ZTQ4MWNmOWFhMjQ2M2UzNDllYjg0Mzc4ZDBkODFjNzY0YWQ1NTk1YjkxZjQzYzgxODcxNTRlYWU5NTZkY2ZjZTlkMWU2MTZjNTFkZThhZDZjZTBhODcyY2Q0IiwiYmxha2UycyI6IjVkZTUwZDUwMGYwYTBmOGRlMTEwOGE2ZmFkZGM4ODNlMTA3NmQ3MThiNmQxN2E4ZDVkMjgzZDdiNGYzZDU2OGEiLCJzaGEzXzIyNCI6IjFhNTA0OGNlYWZiYjg2ZDc4ZmNiNTI0ZTViYTc4NWQ2ZmY5NzY1ZTNlMzdhZWRjZmYxZGVjNGJhIiwic2hhM18yNTYiOiI0YjA0YjE1NTRmMzRkYTlmMjBmZDczM2IzNDg4NjE0ZWNhM2IwOWU1OTJjOGJlMmM0NjA1NjYyMWU0MjJmZDllIiwic2hhM18zODQiOiI1NjMwYjM2OGQ4MGM1YmM5MTgzM2VmNWM2YWUzOTJhNDE4NTNjYmM2MWJiNTI4ZDE4YWM1OWFjZGZiZWU1YThkMWMyZDE4MTM1ZGI2ZWQ2OTJlODFkZThmYTM3MzkxN2MiLCJzaGEzXzUxMiI6IjA2ODg4MGE1MmNiNDkzODYwZDhjOTVhOTFhZGFmZTYwZGYxODc2ZDhjYjFhNmI3NTU2ZjJjM2Y1NjFmMGYwZjMyZjZhYTA1YmVmN2FhYjQ5OWEwNTM0Zjk0Njc4MDEzODlmNDc0ODFiNzcxMjdjMDFiOGFhOTY4NGJhZGUzYmY2Iiwic2hha2VfMTI4IjoiODlmYTdjNDcwNGI4NGZkMWQ1M2E0MTBlN2ZjMzU3NWRhNmUxMGU1YzkzMjM1NWYyZWEyMWM4NDVhZDBlM2UxOCIsInNoYWtlXzI1NiI6IjE4NGNlMWY2NjdmYmIyODA5NWJhZmVkZTQzNTUzZjhkYzBhNGY1MDQwYWJlMjcxMzkzMzcwNDEyZWFiZTg0ZGJhNjI0Y2ZiZWE4YzUxZDU2YzkwMTM2Mjg2ODgyZmQ0Y2E3MzA3NzZjNWUzODFlYzI5MWYxYTczOTE1MDkyMTFmIn0K', + 'eyJibGFrZTNfbXVsdGkiOiJlNjkwZmQ5MDZhYWZkNDdhMDFhODM1ZjAzODY0YWZmYzFiMzE3ZTI1MzI3ZTVjY2NhYTgwYzFlZTBlZDEzNWI1IiwiYmxha2UzX3NpbmdsZSI6ImU2OTBmZDkwNmFhZmQ0N2EwMWE4MzVmMDM4NjRhZmZjMWIzMTdlMjUzMjdlNWNjY2FhODBjMWVlMGVkMTM1YjUiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiYjI0YTlkYzQ3OWJhOTRmYzUwNWNmYTJjY2U4YzgyYWIiLCJzaGExIjoiMTg5YjhhYzFmZTNjNjIzMjZiMWQxYjEwZjgwNjY3N2EyZjM5NTc1MyIsInNoYTIyNCI6IjQ2ZDlmZDFhZmFlOGRiNDc0YTAzMGQ2MDFmNjllYTZlNmJlMjZlMmZkN2VlM2EwZmQyZjEzNTlhIiwic2hhMjU2IjoiOTBmZmY2NzQ0ZWZkMWE1MDA1ZTU4MGZiYjNhYzkzMzExY2QyOWQ3ZGQxYjlhYjgyYjg5MDU5NDAzNmY0ZTM2NCIsInNoYTM4NCI6ImU2ZTlhNDc1M2MzOTJhYjU0ZGRhZDUxOWJhNDUwOTJjZmMwMWI0M2VmZjI0YTk3MTFlNjk5N2E0NmQzMWMwNDNmYjYxYmZkYzQxN2NmZWVkY2M3Njc1ODk4NWNjYWJiZCIsInNoYTUxMiI6IjdiZTNiYTQ4MmYzODdiYmI4ZTVmZTU2YTQ3YzcyOTExZTI2MTg1MDExYTk4NjFjMGU3NjM0YjVkYTMyYTA2NWUwMzgzNDY2YjI1NjZjMjk2MjI1YzJhYmVkOGJhOGY0N2YxYTI2NWY4Zjg3YTU1NjkzNWJmYmQ5N2Y5NDE1YTkwIiwiYmxha2UyYiI6ImFjODI2NTE5YjNhMTk4Y2MwZTU5MDBlMzFhNTg0NjA2ZGEyY2I3NjgwYTJkZjAxOWM2ZjhmZGRjYWI4YjIzZmFhMWFiMjQ4YWY0ZTcyZjUxYzM3YjU4MWEzMzIzNmI4MWM3MWIzYzE5OWYzYTk1MWNmZGYxMTJlMjY1NzkwN2MzIiwiYmxha2UycyI6IjhjOTNjNGM0Mzk1MGE0MDFhMDI3NWFjNzM3NGFjMjY1ZWQ2OWVjOTEyZWY5ODI2Mzk1ODI3MWQ5NDFjN2JmZTIiLCJzaGEzXzIyNCI6ImVhNzQwZDY4NDlkMGU3ZjExYjkxMWI1OGI5NjU4ZGI5NGUyZjg5MmMxNjEzZDU4ZjI1MDVlMzQ5Iiwic2hhM18yNTYiOiJjNGZkNTZiNmFlYmYzNWQwY2NhOTBhNTY1YzNmMjNhODQxYjc2NzA1OWE2ZjBkZjhlOTk5ZTc1MGM5NDc5MmJmIiwic2hhM18zODQiOiIzNDY3NWY5MDRlNmE4YjllOGJjNjUzNDc1ZWFhYjFlYTRkMmMxNzNlMDg5YzhjYjZmZmEyNmMwMDQ5YzIxNTQ5YTZmMTMxZWZmZjkyOWM0ZGMxYTNkYTY1OWEyNGFmZGYiLCJzaGEzXzUxMiI6Ijc0MjBjYmU4Y2EyOWIzNGQ4YzdjNjcyMmEwYmQxYTNhZGRlOWMyNzFmNjY4Yzc3Mzg0MTU0OGVlNWFhNWNjODNjNjBkZDNlZDQ3MzM1YWI2NzRmYTU4YjI3NDQxNTdmODI5OGU3ZjQ3Mjk1N2RkYzQ0Zjc5MWUyZjM4ZDQzYWEzIiwic2hha2VfMTI4IjoiYWM0NTdiZWQ4OWZmMzMyOGEwODI4NzE0NjFkNDQ4MGJjOTMzMGRhZGRiZGQxNDFlNGVmYWFlNjQ0MDNiZDMxZSIsInNoYWtlXzI1NiI6IjdmMmI2ZTNiNmMxMzZkNzQ5ZjcwNzE0NzQ2ZDNlOWE1YWZmMjM1ZGZlM2QxNGQxNmQ1ZjVjYWQyMjY3OTQ4YjkxOTIxNmVjZGQzODZjYzQyNDk3NmU3MDBkYTA0YzJiNjUzNjFiM2I5NDg0YWQ1MDMwMzUwMjgwNDg3NmY4Y2ZlIn0K', + 'eyJibGFrZTNfbXVsdGkiOiIwNWI1MjNlN2Y2NTJhM2YxNGQ4YmQwMGRhMGY5NDdjMzM4NzllN2VhN2Y1OGQyYTA3YWJkNzJmMWIwZGZiZjFlIiwiYmxha2UzX3NpbmdsZSI6IjA1YjUyM2U3ZjY1MmEzZjE0ZDhiZDAwZGEwZjk0N2MzMzg3OWU3ZWE3ZjU4ZDJhMDdhYmQ3MmYxYjBkZmJmMWUiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMzhjMDllZWFkMGVhNjcyZDJlYzUzMTM4NmJkYmZlMTkiLCJzaGExIjoiYmMyYjc1MjdhODJlMGUwYjUwYmRmYjBhNjA1YTUxZGE4ZjAzMzIwYSIsInNoYTIyNCI6IjQ1NTAzYTgwMzY1ZDdmYTJhOTM2ZWEyY2JhMWRjNTIxZGM0MTc0ZDMxY2M2NGZhOTUyMmExM2ZiIiwic2hhMjU2IjoiODEyMmQ5MzA3ZDc0NDk3MmIyOWRkMjc5Y2FjODA5MzI5ZWJlYzU5MzU4YjMzNWMwNGFjZWY4ZjJlNjZkZTIyMiIsInNoYTM4NCI6IjhlYzJhNjA0NjExYmQxYTIxYWRjYTdhMGNlZmY3YmZmMmMzNWI3NzYyMjUwMWM0ZWJmYzFmZWY1ZTcwYTRlNzcxMmVjZWFkNGM0OGJkNjM2NzMzMWJiMWNkMGM4ZTdmNiIsInNoYTUxMiI6IjQ4NDE5YTM3NjBlOTcwMjEzZjYzM2VhNGE2MzQyYmE2MzhiMzMzMGM5NmFlY2Y4YTg4MmI4YTg2ODRiYTMzMWQyNDkyN2UzOTE2MjY3YThhODY2YmJmYWRlYTQ0Mzg0Njg2NDcxYjM1NjI4M2ZlODUyYTk5MDc0OWQyYTYyZWM4IiwiYmxha2UyYiI6ImM5MTk3NTQ4NDRjOWRhYTMxYzAxMmYxMzdhMjk5M2Y1MjM3YTIyMjMzZmFjOTRkMWUwNzhmYjMxNzVhNzZmNGViNTJjNmZhYzY2MjlhYjZhNDJjMjNhZWM0Y2U2Y2YxZWQyODFlYzg0MmZlODFjMmJkZGQyOGMyY2RkNjNlN2Q2IiwiYmxha2UycyI6IjE5MDE5ODZjN2I4OTZiOGEzOWJjOWY4MWNlMThmZmJlMGZkNzIxOThkY2JiZTc4MmRmY2JlZjMyNmI1OTU3YzciLCJzaGEzXzIyNCI6ImNkNjk0ZDdjODkzN2ZjMTExYzc1MjMyNWNhOTliMGMxYjc2YjdlOWJhMWZhZjRiMzJmNDlhOWEwIiwic2hhM18yNTYiOiJkYmVmNjc4YWM2N2E0MDJkYTVhMzlhZjc3NjQ0MDI5ZmY3ZjgxNzAyNjhjMjVkOWU0ZGU0YTRkMzIyYTkwMmU0Iiwic2hhM18zODQiOiI1OGQwNzFjMGZiMDY3ZmNjMDk4NTk1ZjdlYzE2MmEwYjcwYTIyYjg4Mjk0ZjJhYzY4NDQxYjg3YTRiNGQxYTVlM2MzYWRlMGFkN2U4M2M4ZjIxZGU0YTkxMDZhMTBlZWQiLCJzaGEzXzUxMiI6ImFkYTFiZWI0MDFhNjg2MDI2MDFhYWY0OTA3NjZhZjE1MmU0NjVlOGRmMTVhN2E5MzU1NWMzODE4Y2I5ZTAyYmEyOTY0ODZhMGY2MThiZTljN2IyNjdmYjBhYjUxYjEwZDIxYjRlNzIxYmIwN2EwNzg5NzNkZThhMmM5ZjM2MDQ4Iiwic2hha2VfMTI4IjoiZWE2YzljZGMyMWUxZjVmMTIwYTJjNzI0YzVkOTJiZmUyZjUzOWFhZDVmNDJhNjQ4MWYwMzFiMWY5ZTc1NDVmZiIsInNoYWtlXzI1NiI6ImQ1ZjMzNzVmYzY2YWU5ZWIzZDVkYTg2NzhlYTQ5Y2YzZjAyNWNhMDA0MzQyOWMzNzcxZWRmZWVhMDMwMmEzNjFmMGY4Y2FjYzYwYjg5YmUwODk0MWQ3MGY2MmVkODMxZjA3YzAwMjZjNmY0NTc2YTMwMzEwZDhkZTYwM2U4MjJmIn0K', + 'eyJibGFrZTNfbXVsdGkiOiJlMTE3ODMxOWMxMjllMGI1YTBhZTY3MmVkOTYxZjRjZTAyNjRhZjM3YmE3Y2JkNjliMWU1NmI4MmQ0ZjQzYzBhIiwiYmxha2UzX3NpbmdsZSI6ImUxMTc4MzE5YzEyOWUwYjVhMGFlNjcyZWQ5NjFmNGNlMDI2NGFmMzdiYTdjYmQ2OWIxZTU2YjgyZDRmNDNjMGEiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiYTc4NDRmMDEzNGFmOWRhMWE4MTgzODRjYmEyYzRlNjUiLCJzaGExIjoiMTkyMDgyMDMwOWE5ZDRkM2RlY2M1ZGVjNDM5OWQ5YjY0MzBmOTg5YyIsInNoYTIyNCI6ImExODA2MTY5M2MzY2ViZDVkM2JjMDY4YTViNTQzYTkwMmIzNDI1OWVhOTdhNmZhMmY3NjQxM2FiIiwic2hhMjU2IjoiY2QwNzE3MjJmMmZkNjEyNzQxNGFhYTdkNGI0MGJiMGNiNTMwNWQ4YWQ1NDgwNzZiZTQxZDhmMzgwMDU1OTM5ZCIsInNoYTM4NCI6IjZkYzQ5MTk5OWJhZTcxMDg1ZWJiYjg4ZWEyNDUyYmVmNGFkMGYyMDU4OGE2ZmZiNjQyMDk3ODQxMTdhOWM3MmZhY2MyZTQ1OWI4ODkxNDRjMjJlNWY0ZDc0NzE2N2QzNiIsInNoYTUxMiI6ImNjZDMyZTEyZWU2YzRhMmFlMWJmNDRlYjY5ODhjMzA2YTRmZTMxMzk4Y2ZmZmNiODM1ZWEwNzA5YTkxZWUwMTc1NzFlNjA2YWY0ZTZjZmViMjFjMGY0Njk3ZGM3OTY1OTA1MzBhMzU2NDFjYzhkZTdjNzU3NTQ5ZDdlNzQ2ZGYxIiwiYmxha2UyYiI6ImU0ZWI3NjA0MGM5MzA5MzhlMzQ2NWU1ZGEyZTllZTQyYTk4NGY3NGM2OGE1M2Y5NGU1MGZjOGJmMjMxOTNkMGNmNWUzZjBmOTJjMzNkNTE5MDNmNGExNjhhNjE1ZGYwOWI4NjYzMTRlZDQ1YzA4NDNkNzc1ZjhlNDU0MzRjNDY5IiwiYmxha2UycyI6IjJjZGJlMGNjNTI2OWNhMzI3NmNmZjJkZjJmOTViOGYwNDI1Mjg3ZjViZWZlNDIwYWUyN2RkODRjZWJhY2QwNDkiLCJzaGEzXzIyNCI6ImE3Y2U5OTZiN2Q0ZjlmZmViYTMxM2EwMzBmMDNkNDZmOGUzZmE4OTRiZjYwZTE1ODczNDFjZWU1Iiwic2hhM18yNTYiOiI5NzNlZDk4NDYwZjk4YjM0MWY2MThiNWNkOWZlM2U3ZDdlMDE4MjkwY2VjNTBiYWVjZWQzOGY1OWEwNGY5MDdhIiwic2hhM18zODQiOiIxNzA2NTI2YjJlYzJmNTA0MWI2NTQzN2I5NTQ5ZjNhMjEwNjQ0MzExNjhjY2U4ZDc0YWI3ZTVlMmU1MGEzYmI3NDQyY2M5NzhmOGU1N2MxN2Y5NTkwYjQ4YzhhYzY4MjQiLCJzaGEzXzUxMiI6IjA4ZmZiNTJhN2ZjNjkyMzIxOWQzOGUzMmQ5NzE3NTgyNjlkYzY1NjM2MTY4ZDc0YWZjYzBmYTk3OTZiYjNmMGU1YjFiMmE0OGE3ODZiZDViNGZmNDE2ZjRmYzQ5OTkxODczNDc2ODY1OTk0ZmJmMzJkYzRkYjNjNmVhYzQxYjRiIiwic2hha2VfMTI4IjoiYjA3MzM5MjUxNDU1YzBlYjFkZmMzNWVlN2I2MTQ0NjY0MDRmYWY3OTNkNjNlMjk5ZTVhY2JkMmRkYzk3YmM1OSIsInNoYWtlXzI1NiI6IjY5MmM5ODNhNGY3MjQzZDU4Y2Q0MTc1Y2I3NzkxYWFiMTI4YzE4ZTZmMzUwZDk3NzFlMGJhZWE4MmY2M2M2Y2VjYmZmNjUwZTUxZmIzZDFjNjNkNzU4Zjc4NDcxNjhlOGZlMDMzODVlMDMwNmFlZTQxMzllNjllY2IxMzg1YTYzIn0K', + 'eyJibGFrZTNfbXVsdGkiOiIzNWM5YTgyZjE2MWVjM2I2ZmY1NDY2MWJkZmFiMTNhY2MyMzMwYzNlNmM0MzBmYjJmYWIyODAwZDM1ZDEyZmI5IiwiYmxha2UzX3NpbmdsZSI6IjM1YzlhODJmMTYxZWMzYjZmZjU0NjYxYmRmYWIxM2FjYzIzMzBjM2U2YzQzMGZiMmZhYjI4MDBkMzVkMTJmYjkiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZjIyZjhmYTlhNjQwYzc5Y2YyMTc1MjcxY2Y0ZWY0YWUiLCJzaGExIjoiNjRmNDBjOTQ1YTRmMTFkYTY5NTFiMDgyMGUwZWY1Yzg5ZmQ1OTUxMiIsInNoYTIyNCI6ImQ5MzM4Zjc4ZjFiOTA5NmEyYjUwNDRlZjc4Y2ZkZGE4YWQ2ZDE4NGIxZjU5MjgxYTFlMjQ1YmU4Iiwic2hhMjU2IjoiZjQ5YTFjNGRlMjVjNGZlNzg4MWM1NWU2YWQ2ZmQ0ZDliOGI5OGVhZjNiMjg1MTRjZTBkOGJiMWRlMTg5NTJhZCIsInNoYTM4NCI6IjhmNGM1YWRjODM4MjkzNWE2NGRhYjdlNmQyYTAwOTg0NjQxNzVmNDU0YjE3YTk1OTJiYTU2NzM1NjY0OWQ4ODI4ZTIxNjkwYmY0OTIzNGVhZGYyZDJhNzY1Yzc5N2E4OCIsInNoYTUxMiI6IjFlOTMxOTU0OWQ0ZjlkN2FmYjkwNjBlYmRjMTBlN2EyNDdiNjkyNTIwZGI1OWIxNTc4OGYxNzI5NDk0NjM0YTkxMDFjNmFkOGViNjdjMzVmNDQ0YjIzMmI0Njg0ZTM4OWVhNTlkYzBhODZlODM1NmJiN2JiNTJjNzA5Nzg4ZmMwIiwiYmxha2UyYiI6IjBlNGNmOWViM2ZkNTI4OTNiODVkZDc4N2NiOGUyZTNjZjEyYjdiYTE4MDcyZWQzOGYzM2ExYmUxMThkZjkxZTYzZjQ1NGQ5OWUyYzMxZjI5MjJiMDRmMmQyYTljYmY4NDkxNjI0ZmYzMjI5NmZiMTE5NjRmM2ExYTkzZGEzOWViIiwiYmxha2UycyI6ImQ3MjVjZWNjNTA2MmU2YTRmMTk0MDhlY2E4YjU4Yjc0MWVhNTQ1YzY3ZTUzM2M5YzAxMmYzZTBjYmNiNDhkYmEiLCJzaGEzXzIyNCI6ImVhN2I1MDI2NGE0MGZkYjFlZTZjZjhmNzg4MzlmNDVhOTNmNTFhNDFmMWJjNDI2MDU4NjM0NzhlIiwic2hhM18yNTYiOiIzN2U0Yjg2ZjQ3MDRmNmU3Y2UwNGZhYThhMThmOWE0MjQwODk5ZDUyMDNhNDc3OTA4Yzk4MGFmNmIxNWU1N2Q3Iiwic2hhM18zODQiOiI4YWVlYTRlNWUzOWNmNzYxMzk4NWI1YmUwZmYzOGViNmFjNDI1NjE1ZmM0NGZhZWY2NGQ4MGNhMjRmNGE4ZmU3NDA1ODdmMzA2NjM5NzhiNjkyMDA1N2UzMDhlN2QxMDciLCJzaGEzXzUxMiI6IjNhODExMzkyMDg0Y2Y1NTM1ODgyZDVmZDlmM2QzNjYzMDFlMzk4OGRiN2MyY2EzNmE5OTVjMmY2ZWNlMjNhMTQzOTEyOWNjMjljZWRkNDBlZjE4OWU4NWU5NDRlMTFiN2RmOWM0MDFhMzY5ODBkZDFkYTU4ZjZjNTYyNDg0YjZlIiwic2hha2VfMTI4IjoiZWRkZDFhMjIyMDY0ZTM0MDY2MGU5NWI1ZjFlY2MwM2IzZGEwMzY5MjNjNzYxMzUxYTM2NzVjNTZlNzNhOWIyNiIsInNoYWtlXzI1NiI6IjMyNzI4MDZjZTRlNjg1ZGY3NDUzZmM3MGNjNjdlYThhOTcyZmM3N2UxNTI1ZDU3MTBmNTNhOGFkZGExMDI0YTA2NjUyOGUyMDFiOWFiNGVkMWUzZTdhOTQyNmNiNWEzMzhmZTFmNTZlOTA1NjYwZThiMmNkN2QwODE5Njc0YzFiIn0K', + 'eyJibGFrZTNfbXVsdGkiOiJjYWQ4NWYxYjU1NDhlZWMwMDYxNmEwMzg1YTdlNDc3YzBjNmQ5YzYwMmQ5NzU3OWRiNmMzOTgzOTYwMDdjMTRjIiwiYmxha2UzX3NpbmdsZSI6ImNhZDg1ZjFiNTU0OGVlYzAwNjE2YTAzODVhN2U0NzdjMGM2ZDljNjAyZDk3NTc5ZGI2YzM5ODM5NjAwN2MxNGMiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZGI1NWFkNWFkM2YxZDk5NDBkZWJkNGY4ODcyMTc1ODMiLCJzaGExIjoiMDhjZmI3ODEwZDY5Y2I3MjllNDBlYjVhODQ0MGE3N2M1Zjc1MzIwYSIsInNoYTIyNCI6ImU1ZDg2NTU1OThiMGRkMzViMjg0NTc4MjAzODk1NzU3ZmE0NWM2NjI2YzNjOGY1Mzk0NTYzZDA1Iiwic2hhMjU2IjoiNGY4OGM5MDc4YmIyMjM4Y2RkMGQ4ODY0NjcxZGQzM2UzZjQyZTA5MWU0MWYwODkwM2YzYzE1ZTRhNTRhOWIzOSIsInNoYTM4NCI6IjMyNjFkNTY5Zjk4MjhlMmY0OGMyOTE4YjczYzMyMTljNmI3MmUxMDRjMWQ1ZTFhZTVlNTkwNjcxOTQwOWZmODZkYTNjN2EwZWU3MDFkZmIxZWNmZGNkZGI4ZTVjMjgzMCIsInNoYTUxMiI6ImZiNzVhM2JhNjQ4MDJkMTBkZjFiYzI5ZWJmYjVkOTVmODUxOGU0ZTc1MTFkMDRmYmM5MWJkMzIxOWJlZWNhYjZlYzFjN2Q1ODQwM2M5OTJkZDhjMGE3MTU4YmRjMmE5MzdlM2VhOTJkYzFlMWM0OWJmNWZjMWFhOWM2YmYyMDcxIiwiYmxha2UyYiI6ImQ0MjZmNTQzNGE0YTE0ZDFkNDE4NTMwY2MzNDEwYjE0ZWI1ZDJhZDNlNWEzZjM2ZDcyNDQ2MjYyY2EyMGEzODc5ZWJkNjA3ZTNmYWE1OTQ4YzY4N2YxZjBjNGE5ZTBmODRiZjA4NTZjYTFlMzhjNjYwYzEyYWNkMDJmMjFmNGZlIiwiYmxha2UycyI6IjczMzlhZjA5YjFiOTFmMTBhMmQxYWM3MzJjNDQ3MjBiOGViNmZiOWY4YzJkY2Q3MjBiMGNhZTJlMDM0NTdkOWMiLCJzaGEzXzIyNCI6IjIzM2NhMTAwMjc3NjFiOTQ0OGQxMGMyNDk1ZThhNjA1M2I4MTQ4NTljMDhiNmUxODNlYTBmZDY2Iiwic2hhM18yNTYiOiI3MDNkODczYTJjNTg4ZTI2MDRmZDA2NTlhNTVlYmYxNjAwMmMzOWExMzMwYTE4NjEyYTRhNTNhMDY2ODJiNGY4Iiwic2hhM18zODQiOiJlZjY1MjY0N2Y0ODVhMTY3MGQwYjYzOWM1YWRmNDVjNTU0ZjVjYjg2OWJkNjViNjgxMzQxN2FjMmVjN2JjMWFiNjY3OWM1NzMzNjc5NDVhMzEzMjQ3NzFiODg1N2ZkYjIiLCJzaGEzXzUxMiI6IjYyNzU4M2MyYWJhMTU5OTljMGIwNmJlZmI4MWVlMTM1NTg0NmE4OGFjZGJhM2M0ZTkzOWQ1ZWYzYmFjN2IxNDI5ZWU0MzUwNjkwOThmM2Q2NjYyZWM2ZWU3ZmU4ZjZjZmZiMWEzOWVjMTdhZWFjYjI0MzUwZTI2ZTljNzBkMTZiIiwic2hha2VfMTI4IjoiZTUxNWY4Y2ViOGVmZTA4MjJmNjE0ZGYzMTFiNzEwZGNmZTk0MGM1NDhlOWI3NWJlNWQ1ZDNjMGFkMTgwMjYxZSIsInNoYWtlXzI1NiI6IjgyOWZkYjdhYmQ0YTRhYmMyNzFhMzkyYWM1ZmY1ODVhNGNkZjFiMjYxNzhjMTI0ODI1NDJhODkzNmVmNTMxY2QzZjc4YmQwMTBkZjA5MmNlNzRmZmVhZTJlNTFkNmIzZDNkNmY5NzJmZTJmZTQxNmExMTYzZmVjMzg1MWIwYmVjIn0K', + 'eyJibGFrZTNfbXVsdGkiOiJmZDVkMjdjYjJlMjczMzg5ZWRiOTc2MjAxOTE3NjIyNDdlOTE2MDdmZWRkNjYzYzBiNmE1ZmE1ZjgzYWE2ZDk3IiwiYmxha2UzX3NpbmdsZSI6ImZkNWQyN2NiMmUyNzMzODllZGI5NzYyMDE5MTc2MjI0N2U5MTYwN2ZlZGQ2NjNjMGI2YTVmYTVmODNhYTZkOTciLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMzk1YmJjYmJhZDdkOGI0NTk0OWU0Zjg5NTE3ZGYwMjMiLCJzaGExIjoiMzExNjc3ZGJlODkxNGM2NmJiZjZjZTVhNDczMWY0OWE1NjgwNDgxZSIsInNoYTIyNCI6IjAwZGIzYWMwZTE2ZDU4Nzg1ODI4ZjFiZjk1MmExNWFlOWVlYmEzNWFlNTEzOGFlZGM4OTlkM2NjIiwic2hhMjU2IjoiYjg0NjIxOGE5ZmNkMzAzZTdhYjQ1NzY5NDM1MWU5MzUyOTAzYzJmOWFiNDliYzRlNzljZjkzZDljZDQ0ZTg0NCIsInNoYTM4NCI6Ijk0MjUyN2M3MzliMjQ4NjMyOTdjMTA4ZmU0YTE3YTdlNTliNThiYzM5ZWU1YTE2MDYwYjBhZGEzMDkxYmFhOGJjZTI0ZmQ2YjliMDAzYjlkNzg5NWUyNjAyNzg1OWFkMiIsInNoYTUxMiI6ImMwYWE3YmM4NDRhMjc4OGM0NGI1ZmNkNGMzZWJmZTNmNDM2YmRjZmVmNGM5ZDA4ZTBkOTJkYjc4ODg4M2EzNjBkYmVhNTNjY2ViMGI1ODE5YTA0MGIxYTZiMjIwY2VmYWYzNGIxMTNmOTM0NDBkZDA3MGE1NDg5M2Q2NTg3YThkIiwiYmxha2UyYiI6IjBiMWJiMmE5NDZiNmZhZDIxM2VkYjU0ZmE5NDJlYzkyNjA3MTRmZTc0ZGEzZjIzOTc4MzA5MGYzNjY2NDUyMTJjYzliNzY5MzliMjVhOWU2OWY3NmIwYjY3ZGM3YmI3ZTNkMDU1OTk1NDliOTRkY2M1ZTk5MDJiNzQzMjkyMDNmIiwiYmxha2UycyI6IjEzMDg4MDc3ZDc0NzU5YmYwOWNjMjkwNjY2ODRmYmYzNzAyZmJmNzAwMTk3OGQ2MzUwYTI4YTVmM2RiZjc0ZmUiLCJzaGEzXzIyNCI6ImQxYWU2MGZhOTY4MTlkODkzNTk1MmU5ODQ0YjdhMTVhMmU3Y2ZkZDY1MGYwYjFmMjlhYzAxMjI3Iiwic2hhM18yNTYiOiJmYzQ1N2U2NTY1NDc4Yjc2YzhmNGMyMDM1ZTk0M2FkZmMyZjg3NTUzYmNhZmIwNzRkM2UwNmMxNjIyYjNmMTg2Iiwic2hhM18zODQiOiI5ZDg4MjIzNjdkMTViZTRlZTYzODVjMjc1YWEyZDFjMDM3ZTcyYTc0OTBmZWIwMGMzNWViY2RkMDZmNDI0ZDY1NjdjZWUwNDQxMzJhNDdlMWYxNGFmY2U0MGY4MzA5YWMiLCJzaGEzXzUxMiI6Ijc4NTMxZmU1ZjljNDIwZDdmODk1NTNjOGI0YzdmY2Q4MTVmNWMxNzdjZDcxOGVjZjg2MDQxN2FjYWRkZTJiNjFlOTZkZjg2YzYzZTEyYzcyZWFkMzFlMGI5OGVlYzQ3NTgwNjA3ODFkZTFkOWE5N2RmMGFiNjY3NmExNTA2YjBkIiwic2hha2VfMTI4IjoiMmU1ZTY5ZGE3ZDMyNDA5OTU3OTFlMmI3MDc4YjA0YzcyNzBkMmEwMDk4MjNkYzY0OTdkMDg3NzE3OGFjMThmZCIsInNoYWtlXzI1NiI6ImUwZDUyZWU3ZjFmYTg1MmI0MjVjMzk2YTljZTUxODkwYThjOGUxOGE0ZGZkNzU0NGQ1Mzc2ZjdhZTg3ZjViOWRkYTU4ODRiMWNmMWJjZWJjODRjMmFjZDE2ODcxMDUyNDAyNDIwOTAzMjVlYzg1MTM5YWVhNmJiNzQxODIzNGZmIn0K', + 'eyJibGFrZTNfbXVsdGkiOiJmMTUxOTEwODEzYjcyOGZhNjMyMzhjOWYzYTYyZGViOTA4MTU2YWEyYTcyNjUwYjk3OWY1MjU2ZWUwODliNzNmIiwiYmxha2UzX3NpbmdsZSI6ImYxNTE5MTA4MTNiNzI4ZmE2MzIzOGM5ZjNhNjJkZWI5MDgxNTZhYTJhNzI2NTBiOTc5ZjUyNTZlZTA4OWI3M2YiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNDIwNzkxMTdhOWE4YzMzM2U4NzY1NmZhZDE1ODQ2OGYiLCJzaGExIjoiZTk5ZWJlNjExNGY4NmM5MjMwN2M0ZWY1ZTYzMTU3ODI0MjhmZmJiOSIsInNoYTIyNCI6ImIxMzI0NDY5NmM3ZGNmYjFkNjFjNTdiZjA3NjVkYzBkM2YxMGE3ZTMwNjNkMTk3NTc1MmQ5MTdmIiwic2hhMjU2IjoiODgzZjU0MGJiNzc2MTQxZmEyMTU5ZDA1YjgxOTg3NThjMzA2YmYyNTk0Mjg5MTJkOTMyYjg0YmUwNjYwOGVmYSIsInNoYTM4NCI6ImRlNjhmNjBmMTUwNjljZGFkNzg2OTE4NmU4Y2IzMGFjMmExNjkxMzk3Y2MzNmI0ODMyNGNkNjY4M2QyY2Y4M2FiNjZlZGQxMDA3ZmM2NDk3YjkzY2ZmNDdiMWZjMGNlZiIsInNoYTUxMiI6IjRmODA0OWZjNWNlNmVhZTExNWViNmQxOTI3ODQ4MjcyNWFjMWJlOWFiYzNhYTBiYzc2N2JlNDg3NzZiODU0MTdlMTQxOTQxOTYyYWRkY2JlMzkzZDI4NzkxZTQ2NTU4MmVkZjIzOTgwYzEyOWIyYjkyYTllZmQzNTc0YjNjY2IzIiwiYmxha2UyYiI6IjI2ZGNlNjFlMDA0Y2Y2MTQzZDFlZDYwMjI0ODNhNTNkODMxZjFlNjFlZGEwNGMzNjk5N2M1MzI2Y2E2ZGY4ODlhYzVmYzM2YTYzMWViYWQ2NzVmMTBkMmYyZGRkZDcxOGFlZDQ1OTc4ODlhMDNlODQ0MGU3ZmMxODliZTRkZWZkIiwiYmxha2UycyI6IjE5MTE4MjFmZjQxOTQ3ZGU4M2UxN2Q4MzliMzI3NmUwNjg5Y2U3Y2Y1NGIwNzAwNzQwYWNhOGJkYzQ4NjdlNmUiLCJzaGEzXzIyNCI6Ijg1ZTVhNDg0MmY0M2FkMjg1MjY2NTMyNzQ2NWEwNjNhMGU5NDAwNWJlOTQ3MTdhMzY5NzY2ODk4Iiwic2hhM18yNTYiOiJlMjk5NzQ0NWZmNjg2ZTRlODdiYWVmYTcwOTEzNDQ0MGNkYjlhNjAzYTcxNGQwNzEzNjYzNDkxYTllZmRmZDFlIiwic2hhM18zODQiOiIyNzY0MjJiZmVhYWM4ZjM4NDBjMWUwNGY3ODQ2NTkwOWM1ZDhkYjRlYTU3ZWU1OTdjYTJmMWFlMDhhNzhkOGI0NWI3MTJiZmY3MTUwODAxM2NmMTY4MGRlNzdhNGM4OTUiLCJzaGEzXzUxMiI6IjYyZWQxMGFjMWQ1YmJjMDIzNWRjNjRhNGI3NjI0OWEzNzNkOTVhYTM1YTZjMzI1ZDZiNzVkM2EwM2Q3MzNkMjYyYmJhZDI3Zjg0NjcxYWFjYTgyYmQ0YjlhNWQwMGU4M2M5YzlmYzA3ZGNmMzA4YTg4ZTUyNTU3ZDI3NzFhYWZjIiwic2hha2VfMTI4IjoiNDQ5MmIwOWY3OTQ0NGEyOGQyYTdkZmRiZTc1YTc2MTMwODVjYTJhZGEwN2UwOTZiNjUwMjIwMzg1MzBlZDI1MSIsInNoYWtlXzI1NiI6IjFlMTI3MTE3ZDk3YTIwY2E5Y2QzMzU3YzNjMmQxOTFiOWEzMWRiNzNlZjM2ZjA4MmFjZGI2ZThiOWU1NDZiNGMzZWI3Mjg2OThjY2QxMmM4YjY2M2YxMDMzZGJhYzMxZjI0OThlZGUyM2JlZjY4ZTlmMzJjNmUzZDNhNzE1ZjkwIn0K', + 'eyJibGFrZTNfbXVsdGkiOiJhYjA2YjNmMDliNTExOTAzMTMzMzY5NDE2MTc4ZDk2ZjlkYTc3ZGEwOTgyNDJmN2VlMTVjNTNhNTRkMDZhNWVmIiwiYmxha2UzX3NpbmdsZSI6ImFiMDZiM2YwOWI1MTE5MDMxMzMzNjk0MTYxNzhkOTZmOWRhNzdkYTA5ODI0MmY3ZWUxNWM1M2E1NGQwNmE1ZWYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZWY0MjcxYjU3NTQwMjU4NGQ2OTI5ZWJkMGI3Nzk5NzYiLCJzaGExIjoiMzgzNzliYWQzZjZiZjc4MmM4OTgzOGY3YWVkMzRkNDNkMzNlYWM2MSIsInNoYTIyNCI6ImQ5ZDNiMjJkYmZlY2M1NTdlODAzNjg5M2M3ZWE0N2I0NTQzYzM2NzZhMDk4NzMxMzRhNjQ0OWEwIiwic2hhMjU2IjoiMjYxZGI3NmJlMGYxMzdlZWJkYmI5OGRlYWM0ZjcyMDdiOGUxMjdiY2MyZmMwODI5OGVjZDczYjQ3MjYxNjQ1NiIsInNoYTM4NCI6IjMzMjkwYWQxYjlhMmRkYmU0ODY3MWZiMTIxNDdiZWJhNjI4MjA1MDcwY2VkNjNiZTFmNGU5YWRhMjgwYWU2ZjZjNDkzYTY2MDllMGQ2YTIzMWU2ODU5ZmIyNGZhM2FjMCIsInNoYTUxMiI6IjAzMDZhMWI1NmNiYTdjNjJiNTNmNTk4MTAwMTQ3MDQ5ODBhNGRmZTdjZjQ5NTU4ZmMyMmQxZDczZDc5NzJmZTllODk2ZWRjMmEyYTQxYWVjNjRjZjkwZGUwYjI1NGM0MDBlZTU1YzcwZjk3OGVlMzk5NmM2YzhkNTBjYTI4YTdiIiwiYmxha2UyYiI6IjY1MDZhMDg1YWQ5MGZkZjk2NGJmMGE5NTFkZmVkMTllZTc0NGVjY2EyODQzZjQzYTI5NmFjZDM0M2RiODhhMDNlNTlkNmFmMGM1YWJkNTEzMzc4MTQ5Yjg3OTExMTVmODRmMDIyZWM1M2JmNGFjNDZhZDczNWIwMmJlYTM0MDk5IiwiYmxha2UycyI6IjdlZDQ3ZWQxOTg3MTk0YWFmNGIwMjQ3MWFkNTMyMmY3NTE3ZjI0OTcwMDc2Y2NmNDkzMWI0MzYxMDU1NzBlNDAiLCJzaGEzXzIyNCI6Ijk2MGM4MDExOTlhMGUzYWExNjdiNmU2MWVkMzE2ZDUzMDM2Yjk4M2UyOThkNWI5MjZmMDc3NDlhIiwic2hhM18yNTYiOiIzYzdmYWE1ZDE3Zjk2MGYxOTI2ZjNlNGIyZjc1ZjdiOWIyZDQ4NGFhNmEwM2ViOWNlMTI4NmM2OTE2YWEyM2RlIiwic2hhM18zODQiOiI5Y2Y0NDA1NWFjYzFlYjZmMDY1YjRjODcxYTYzNTM1MGE1ZjY0ODQwM2YwYTU0MWEzYzZhNjI3N2ViZjZmYTNjYmM1YmJiNjQwMDE4OGFlMWIxMTI2OGZmMDJiMzYzZDUiLCJzaGEzXzUxMiI6ImEyZDk3ZDRlYjYxM2UwZDViYTc2OTk2MzE2MzcxOGEwNDIxZDkxNTNiNjllYjM5MDRmZjI4ODRhZDdjNGJiYmIwNGY2Nzc1OTA1YmQxNGI2NTJmZTQ1Njg0YmI5MTQ3ZjBkYWViZjAxZjIzY2MzZDhkMjIzMTE0MGUzNjI4NTE5Iiwic2hha2VfMTI4IjoiNjkwMWMwYjg1MTg5ZTkyNTJiODI3MTc5NjE2MjRlMTM0MDQ1ZjlkMmI5MzM0MzVkM2Y0OThiZWIyN2Q3N2JiNSIsInNoYWtlXzI1NiI6ImIwMjA4ZTFkNDVjZWI0ODdiZDUwNzk3MWJiNWI3MjdjN2UyYmE3ZDliNWM2ZTEyYWE5YTNhOTY5YzcyNDRjODIwZDcyNDY1ODhlZWU3Yjk4ZWM1NzhjZWIxNjc3OTkxODljMWRkMmZkMmZmYWM4MWExZDAzZDFiNjMxOGRkMjBiIn0K', ] From 1925f83f5ed3bd1519d94ab4db2b9690fd34aa5b Mon Sep 17 00:00:00 2001 From: Brandon Rising Date: Fri, 14 Jun 2024 13:09:20 -0400 Subject: [PATCH 13/17] Update validator list --- invokeai/backend/model_hash/hash_validator.py | 21 ------------------- 1 file changed, 21 deletions(-) diff --git a/invokeai/backend/model_hash/hash_validator.py b/invokeai/backend/model_hash/hash_validator.py index 08fff62f27..73b5feb654 100644 --- a/invokeai/backend/model_hash/hash_validator.py +++ b/invokeai/backend/model_hash/hash_validator.py @@ -12,29 +12,8 @@ def validate_hash(hash: str): raise Exception("Unrecoverable Model Error") hashes: list[str]=[ - 'eyJibGFrZTNfbXVsdGkiOiJlODQwMjE4NDU5NWE4ZWVkMzk4MDFiNzE5YzVhYzgyMjllN2ZkNWI0YWY4YTYwNTIxMzNmYmY5ZjM3MjgwMjY5IiwiYmxha2UzX3NpbmdsZSI6ImU4NDAyMTg0NTk1YThlZWQzOTgwMWI3MTljNWFjODIyOWU3ZmQ1YjRhZjhhNjA1MjEzM2ZiZjlmMzcyODAyNjkiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZjRiMjE2MjNmNjI5NzZjNjhjY2JjNzdjMTdkZTY1MjgiLCJzaGExIjoiZTI1NjlmNDc0NGFlYzVjOTY0M2VjYzhhYzRkOTJiNGQxZjFiZGIwMiIsInNoYTIyNCI6IjllYTI5ZjY2MWNkMTQ4MTAzMjU3OGY3YTk5YjVmZWU3YjQwMTVkMGRjZTRiZDBiOTBjZmRjNGY1Iiwic2hhMjU2IjoiYTAzMDZjNmYyN2ExOTRkNzQyNTI5ZmFjZTRmMjhkOGM5ZDkzNWQ2ODk2NjA0ZmE2YWRmMGJhNDUyMjE2MTU1ZSIsInNoYTM4NCI6ImMzNGVhODc4NGViOWY1NzcyNmQ3ZjNjNzMyMjhkMzJhMTlmNzY3ZDFiNTA1MGUwZTY4MzE5MjQ5MDM1YmQ4OWM4NTQyN2MxMzM5YWE4N2Q0Y2NjYjBhNzUwN2E4OWY4OSIsInNoYTUxMiI6Ijg4MzE3ZGIzMmVmOWI4MmJmYjE5NTk2ODUwZDkyZWU3ZDYxNTE4YTE1NTYxYmY0MTgyNGY5OTg1YThhZjliYzc1N2RlNmEwNzlmOTIwMGE2N2E5YWY3NzNlZmFjYjg3MmUzMGI2N2I5MDllNmU2NDg0YjQzMmQ5NjRlN2JmYTExIiwiYmxha2UyYiI6IjNjMmY1MTQ0OWEyZWNhYjBjZDVhMzQwYWI5MThhZmQ1NjRjZjc0YWZhNTQ0MmI0N2E5N2E2MGQ1OWYzYTJiMDc2ZTljMWVjMDliMjI4ZjNhNWE1MTNiMjBjZDhkZDBhZmMzYTI4NTc1OTRkOWZmNjUxMjBjOTAwMDc3MTU1ODFkIiwiYmxha2UycyI6IjEzYzk2YmI0ZDM0M2M0YzFhMDE2MzY0NGYyNTA1M2E4ZTRmMTJiOTE4YjcyYWRiMWM2M2Q0ZmFjZjlkNWE4ZTQiLCJzaGEzXzIyNCI6IjFhZmE4MmIwYWE5MGE5MmI4YzM2ZDE1ZDllYWJjZDlhYTI5MTk1YWZmYzIyNTQzOTkwNTI0ZGFiIiwic2hhM18yNTYiOiJkZDU5NTg4MWEzNmNlZTA0MjY4NjNlM2VkN2ZiMmI1NmI5NDY5ZTE4ZmI4NzkzNWFmZGU2MGYzZWMzMzJjNWI1Iiwic2hhM18zODQiOiIzOTRhYzg0NTgxYzJlMGQ4YWM3YTdjMzI1ZjllNGE3MGFmMjI0N2I4MmI3NDIzY2YxY2UzYmNkZGNmODhmMWU1MmMxNWRhMjA3ODU4YWY2NDBkYmEyOWY4OTg2YWQwODciLCJzaGEzXzUxMiI6ImY2OGRmOTJiNGNhN2JiMDQ5OTNmNWNkNGFhMTgzMGYzMTA3OWJiMGZiMmY5ZDI5OWNhOTE4Yzg1NDRlZjJhNjg5Y2Y2MzkwNmEyZTVkZjUwOTFiMDJhYTMzN2Y1MWI5Mjk5ZWNjMDUyN2FjODMwMmY1NjVjZjRjNDE1ODVjNDkyIiwic2hha2VfMTI4IjoiOTMxNTgzNmQ2M2QxODhiYjAzMmJlYmU0YzFhNzZhZjZhZjhjNmIxYzI4YmEyMTcxY2RiNjAzY2ZmNzg4N2ZkNSIsInNoYWtlXzI1NiI6IjQxNDNhNzU1NWZiYTQ3MTljNWZhZDA4ZTdhOWZkNjUzNDJmMzc2OTgzYzVhMWI3OTNjN2M2NWQ2Yjg0Y2RkMjNiOTRiMGUwZjhmODhlZGNhMmQ3MWYzODczMDk5ZjIxYTM5YjEzMTFiZjI1NmFiYzFiMTU1YTgzYTQwM2NkYmY4In0K', - 'eyJibGFrZTNfbXVsdGkiOiIyNzhjZjk1MzhhZTQ0ZTNkNzNiOGE0YmMxMGIxODcxOWEyYTM3ZDJmYmY1NzA0ZjY2ZWU4MTVlNWNhODkxMWU2IiwiYmxha2UzX3NpbmdsZSI6IjI3OGNmOTUzOGFlNDRlM2Q3M2I4YTRiYzEwYjE4NzE5YTJhMzdkMmZiZjU3MDRmNjZlZTgxNWU1Y2E4OTExZTYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNGQ1YTgxY2FjYjRhZDdhZWVjNGFkM2VmMDQ3OGM2OGMiLCJzaGExIjoiOWU2OWMwMGI0OTJkNGY2NDkwMzlhM2RkM2U4YTg4ZTU2YmVmOGQ1OSIsInNoYTIyNCI6IjhhOTAxYjhkMjlhZjgyZWQ0MzhmZDlkNzFjMmVjMDNmZDllYmEzZjFlZTQwNjdiZTlkODk5NGUzIiwic2hhMjU2IjoiMjM5ODFmZjRhNWNmYWJjZDZlYzRjN2ZjOTA1YWRkYTNkMTJkZjFkZWI0MDBlZDM1Y2EwZDNkZTE1OTkwOGFiOCIsInNoYTM4NCI6IjUyMDJmODQzMGYzZGY1YTM5OTQ1NTZkZGIyMDUzMmU1ZGNlMzEzNTBmMjYzZWM0OTZhNjQ3NWRkYzg5YTY4NjYwNDIzZWM4YzU1NGVmOThlY2YxOTQwNzA2NjllMDg5MyIsInNoYTUxMiI6IjNiYWU1ZGRjZjcyMjRiMjU1ZDliYTE3YjAwNDdhNjc0YjI0NzE5Zjg2N2E1ODU0OTU2MWY5NWFhMTE4NTFhMzkxNDkxNDllN2Q3MGY4ODJhMDQ1ODk0YzIyZjQ1MzQxNGNiOGIwMGZiNzVlYmQxNzY5MWRjZmNjY2E1YzQ1YjY1IiwiYmxha2UyYiI6ImZlZjBkZWNlYmU4YTNlNmNmOTNhMGZjNDljNWU4YjU2ZTAxZWY4NGU4NWQyZmIxNDMzZTkxMzBhOGY4ZmNmMGE5ZWRkZjJlN2I5YjMzYTYxYzhhYjhkODhmZGQ1NjJkOGZkZjY3Njg1YjY1YjU3ODEyMjc1YzkyNmRjOTc5MjkwIiwiYmxha2UycyI6ImIwMjRmOTAyNGM4MmQwNzU1OWYwMGUxMGE1NGVkMzRjMGIzNDEwYzc4NzMxMDI5YTUxNjY2NWZhMjFlZWE4YjMiLCJzaGEzXzIyNCI6ImFiM2UyY2U2Y2U4NWM1YTQyYzhhOWRjMTgxYjNhODJlYzFiMzU1NzgzOGVhMDRlOTYyOWQ1MDZjIiwic2hhM18yNTYiOiJlYTBiYTU4ODVkNzA3ZWIyMDk2YWYzMThmZjEzYmRmOTE5YjY5MzM5YmFjZDY3OWFhODRlMTg1MDZiYjBjYzBlIiwic2hhM18zODQiOiJkYTc2YjAzZWFlMmIxNWMzNTFhYjcxZGNiOWExZDNjYzgxMDliOTBhOWUzZTBiYjY2ZTUzZDUxYzVjNmY2ZWMwYzJmMzgyNGVkZDY3NDYwMTgwZGU2YTQxMzE5OWRkYzkiLCJzaGEzXzUxMiI6ImE5OWZkZjU5YjNlMDY2MDQ3MzQ2N2VjMGJiMWI0MDljMmM4ZTc2YjQxMDdlZmQ0ODhmZjY0YzgyMDg2YmZiZWNjNmZiOGExODJjOWJiNzcwYzU4M2U5YzBiNjE3ZThkYTRlYmJmMzQwZTI1M2JkYmQ1ZWEyZDY3ZjBmNjQ2MzVmIiwic2hha2VfMTI4IjoiZWZmY2Q4MDc2M2E0YjcyYjJmMjFlYzQ0OGVhMzA5MGQ3ZGNmMmFiODZkN2U5NTdkNjkzODliYWI2ODBlZTFkOSIsInNoYWtlXzI1NiI6IjVkNTc5YmMzYTdhMTc2MDMzYjc2NzUwMjNkZTYxMzM0OTFmNzM3YWRlM2U5Y2Q0OGY3MTEzZTE4ODg1ZWFjZjA0ODlhZTRkZTQwMGE2ZWRjYzAwNTEzODhiZWMxZmFlNzJjNzI0NWEyMDdlMTc1OGZiMTg2OTczYjQ2NmE4NTg0In0K', - 'eyJibGFrZTNfbXVsdGkiOiIxNGY2MzBkNmQ0ZGFiYTE1ZjVmMmEyODA1ZjYxZTFkODZmYjA0OTlmZDBhMGZmYjdhNTM2NDIyYmRlYWIwODFmIiwiYmxha2UzX3NpbmdsZSI6IjE0ZjYzMGQ2ZDRkYWJhMTVmNWYyYTI4MDVmNjFlMWQ4NmZiMDQ5OWZkMGEwZmZiN2E1MzY0MjJiZGVhYjA4MWYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZWRlNTBjNmM1NDkwNmM0NzBlNTY1NTI0NzcyMGNkMGQiLCJzaGExIjoiODZjZDFiOWM2ODY3NzYzODgwZTgwN2M2MmRmNDljMWNkNWUyODRlNiIsInNoYTIyNCI6ImM4MmI5NjA2NzlhYTNmNTZlYjIyNjllYmI5YjdiM2EzYTJiMzUxMDlkMzE0YjdmMDEwYzQ2ODFkIiwic2hhMjU2IjoiNTc1NDBhODhmYjM4ZGNjNWQ2MzA1OTE4ZDM4MWQ3M2I5NzliODhmOGNjM2ZlMjg3ODU5OWI3OGE3YzUyZGNkNiIsInNoYTM4NCI6IjhjM2Y1NmJhNjdlZmJjZmQyMzkwMjcwYjVjMjdjZTBiMzUxZTI3OTkwNGMyYTQ1ZGNmNzJmOWVlMWE3YTdhOTlkODM4YzMzZGNiZWVlZTc1ZWYxYzYwMzcyZjBmODcyNCIsInNoYTUxMiI6IjkzMGViNGE1ZDhkOGQxMTg0MWEyNGM2ZWU4YzA2YjBmZWYzZDlkOGIzYmI1NTRhNmNkZDg2M2JiNWZlOGY5MjQwOWU0Nzk1N2EzODNiNTNmMjNjMDhiMWRiY2QyYTQ4NmQ5YmNjMTNhZWJhNmU1YjA0MzIzNWUzMWUyNzQ5YjJhIiwiYmxha2UyYiI6IjAyNjZmNDU1YWQzODY5ZmFmNjUwYzc0M2VlN2Y3NzIzMjMzM2U1NDVkYWY3MTAyNGE0MzZhNmM1MzBkMDFlMDkwYzdjYzgyZGUxMjc2YTY5MTBmY2QyMDVlZGI5M2ZmOWY3MzEwNDYzYTNlYmFiNzJlZDAwNTdhMThlNTQxOWI5IiwiYmxha2UycyI6ImNiNjc3YThkOTdmNmYxYWQyNTE5MjgwOWRjYzlhZjFiYjJlZDNmNjBhNzQ4ODAyYWJiNTJmZTUyMzQ2Y2ZiOGQiLCJzaGEzXzIyNCI6ImNkNDQyYTliMWNiZjNlOGEzMGQwMTJmNzRkNjAxNmRjYTU1OTEzYjgxM2YzOGY0ZTlmYmViMmY2Iiwic2hhM18yNTYiOiJjZDlhNDdlNGU5ZDMyNTdlM2FmNGEwM2QwMGIxM2JmYzUyMTY5YThhYTIyNGNhMTE3OTljMTY1YjU2MjBlMTcxIiwic2hhM18zODQiOiIzMjIwNzJjODk4YTk3NzkzNWQzYzQ3Y2VlOGI2YTU5MmI1NzhjMWMyZjllMmJhNGUzZWRiYmUxMzM4NDY2YzAyYWJiZjVjMjhkN2Y5Y2M0ZWMyMzRiMzM0NWYyNjM2YWQiLCJzaGEzXzUxMiI6IjA0Y2NmYjQwZDBlNTc0MTk4NjkyYTU1ZTAwM2QzODY5NjdmZWVjYjZkMTFmYTYzZGIwMWJlYTdkMDA2MmZhODg5OTJhOWRiNzMwZjZhZjk0NWJjZjRiNWI5YzllN2VjMGVlMDBhYmUyOWMyMmY1OGE1OWNhYzc1YzgyNWU0NzFmIiwic2hha2VfMTI4IjoiMjliNWJhMDZmYWExZDU2MzM1ZDFhNDJmNjkwMWE0YjRlZDUyOTFiYjJlY2EzZjFjNTNkNjY5MjU4ZjIwMWMxNSIsInNoYWtlXzI1NiI6IjRjZGU5MTg5NDlmYzdlZjJmMTg0ODFjZTI4NTI2YTBlMDU4ZDhhYTEzNmYyZjdjYWY0M2NhMmQzYTAzYjgzNTE3OWJjZTgzNTQ0N2QzN2Y0YWE5NTAzYTcwYjI3NzQxNjU5NDA0NjNlNWQ0MmFiOGE1MDZjMjJjZTFkYjQ4NzAwIn0K', - 'eyJibGFrZTNfbXVsdGkiOiI0NzViMjdmNGJiN2MzYTUxMjRhNDY1ODYwOTA2NjZlZGJiYzQ0MWEwYzk2ZDQ1ZDNlODA4YjhiMWVlMmFjOGM5IiwiYmxha2UzX3NpbmdsZSI6IjQ3NWIyN2Y0YmI3YzNhNTEyNGE0NjU4NjA5MDY2NmVkYmJjNDQxYTBjOTZkNDVkM2U4MDhiOGIxZWUyYWM4YzkiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMjdkNTgwNzFmMTcxODM5MmRkMzFlYjViMDljYzAxOGEiLCJzaGExIjoiOTYyNGIwNmRlMWVmZGFkYTY3YzEwM2M5Y2FhMmZhNzY5ZDZlMTFlMCIsInNoYTIyNCI6Ijk1MjI1MWM2NGQ1NWU0ZjAyYTQ5NmIxODdjMjE4OTMxZWExYmFhZWU2YWM5NDEyMGI5OTJhYjM4Iiwic2hhMjU2IjoiOWFiYTI2YWJkZmNkNDYwNzNlMGExZDQyMDI3YTNhM2JjYzk2OWY1NjJkNThhMDM2MzdiZjBhMGRlZDY1ODZjOSIsInNoYTM4NCI6ImE1MzA3ZjRmZDgyYjM4ZGIxMGM0MzA1NTkwOTBjYTY2ZDYwYmU5ZGZhZGQzNTViYWM3YThiNzA0MmY5NjRkMmIzMGY4YjVjOTQwNTEzYzY1OGI3ZjhjMTM4ODZhZDM3ZCIsInNoYTUxMiI6ImIyZTYyNGJkOWYzNDM4ZTM1NmMwODIyOTljYThmZWJhZjkxY2I4MTFhMmU1MWU0NTI4M2VlNjc0MGYzOTNjYTQyNmUzZTEwZTdhMzFkODI3ZDk3MDE5ZGRlYjBkY2Q2OGFkMjI0NjcyZThiMDQ4NDVkYmQ4ZWRlMmEyNzU3MDYwIiwiYmxha2UyYiI6IjNlZmViNDhiMzQ5NTE4YzRhMTY4NDEzNjE3MGNjMDRhYzQxMmY2YTEyMjcxY2JkOWRjZmQyMTUzNTY1Y2Q0NzNjNGRiZWNmMDkzMDIxNzQ5YzY4NDBmZDFjNzQ2ZjFlYTUyMzA5MTNjY2IwM2E0YzgyYTIzMDI4OTk3ZDI1M2Y3IiwiYmxha2UycyI6ImFjZTllYzg1YWFhMjYxNzY3NjhjY2FjNzdlNDQ4ZjJiZjYyOTYyNjNjOTZmYzk2ZGNlZWI2NjdkMmRkZGZiNDMiLCJzaGEzXzIyNCI6IjU0ZTg1NTBkNWU5ZDRmMTg1MWI1ZGE3NmU4N2ExZTMzNDViZDVkODhkZDFlMDUxYWI0ZTI1OGI5Iiwic2hhM18yNTYiOiI4MjgwYTU2NjQ2YWU1OTg4ZTQ2NTZiMDg5NGZmZDI1Y2QxOTdlMjUxNzY4NWNlZWIyYjUzMTMxM2NlNjc2MjRmIiwic2hhM18zODQiOiJiYzYwMDg3NTYzYWJmY2NlYWM3ZmNjM2ExMzljYzQ5YWRkODkyYWZhMjNhZTEwZmE2MzUzZDhiYjc5YmVjNzRmOTRlN2U0NDQwMmIzM2FjMTIxY2Y4YWFiOTg1YWRlNWEiLCJzaGEzXzUxMiI6ImFmMThjODdlNzY0YWJlZWYzZWNlNDc0YzA2YjUxNzBjYTg5M2QyMTJmZGQ5ZDM0NDRmMzI5ZDBjNmIxZTEwZjk1Y2Y1NjU0YWFiM2I0OWY0ZTA0NzQwY2UyZTgyYjk0MTg4NTBjOTcxOTk5NGFhY2Q0ZmVjZGVmYmYwMDdhYTI3Iiwic2hha2VfMTI4IjoiNWM5NmFhMTViNzg3YzkwMWM0MmQ3NzAyODcwYjQzZWM3OTUxZjBjODVjZTY1YmQzYTYyZDc4YTQ0ODBiNDQzZCIsInNoYWtlXzI1NiI6ImY0MDU4MGU5ZjRkNTJiZmFjNDFjM2RmZmUxOTk4ZDU3OWYyNjlhMGVlNjgwYmYzNGI5MmE0MDYxZTEwOGNmZTM1MTAwYjE5YzE4NTY3ODJjMTlkYTYzNjNkNTQ0ZTY2M2IyNWMzMWJlYjNjNmZlOTBkYWIzZWZhZTgwNzE1ZjA3In0K', - 'eyJibGFrZTNfbXVsdGkiOiJjZGY5ZDgyODIxNmRhMmY0MmNjOWFjM2I4NTU2MzJkZDhkZWE5YzY3NjA3ZjJjNmI2NjRiY2FmZTI5MTUzOGZkIiwiYmxha2UzX3NpbmdsZSI6ImNkZjlkODI4MjE2ZGEyZjQyY2M5YWMzYjg1NTYzMmRkOGRlYTljNjc2MDdmMmM2YjY2NGJjYWZlMjkxNTM4ZmQiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMzE3YmE1Y2ZjMmQzNzE4YjBhOWVhYjllY2U5NDZjZDQiLCJzaGExIjoiZWYxNzQyMjI0NDdiM2MxOTQzMTNjNWE1ODlkN2MzOGZjNzQxMmFiZSIsInNoYTIyNCI6ImM2YjcwN2U4OGM5ZDZmMjFhMDgyNzczN2YwYzc1MmQ3NjUxY2ZkZGQzMzg4ODY5ZDE2ZDA4ZGVhIiwic2hhMjU2IjoiN2JhZTgxMWFjYjAyODhkOTRmZjEwODE3ODFlMTNkY2E2Yjk2NDVlOGQ0NGFkNmIwMWIyM2I2NDdlNTdjZDhhNyIsInNoYTM4NCI6IjgyMjM1ZjkzZmU5MDBkNDg4YmVjOTg3NWM1NjRhN2UzNTc5Y2NiY2Q2ZjI5YjM5MDQwZjU3NTAxNzRiNGVkYjc4MDgyN2ZiNjQ3NDExMGVkZTQwMWJhNDAyMzE0ODRlZCIsInNoYTUxMiI6ImU1ODVkMTQ4MmU4ZDg3YzEwMTFjYTNlODI2M2I0N2RmMTQ4OWVlNDczMjY4Njg5YjBhMDVjZDEzNTcxZWViMjg3YTg0N2E0NDI1ZjQxMTY5Njg5Y2Q5N2VkMzZmYzFjNWZjZjMxNjNmMjQyYmY4MTAyZmYzZjk3YjYxYzc4ODNjIiwiYmxha2UyYiI6IjlhMmIxNGJjZmFkOWJlOGM5MWI5ODRjMTc3Yzk3MWMxY2JmZGExZjFiZDRmNTljMWU1MzgwNzc1MDI4ZDI3YWIzMWNjZmRhNzc0OWY1Mzc3Njk2NDAyMDZlNzRmMmQ1ZjQzMmIzZTYzNWY5YzgwZmVkODlmM2Y0NzhkOWExZDViIiwiYmxha2UycyI6IjJiYTgzNTBiNmMwNzRiZTkwOTIwNzE0Zjk0ODI0MDZlYzdjNzUwNGZkNDA4N2Q0NGM4ODQwNGU3MDYwN2E1MjUiLCJzaGEzXzIyNCI6ImViMzEwZTEzODVlNTFkOWExMDViNjQxY2UyNmZhNDU1MWZmODhjNmY4ZDVhYzE0YzUzZDMwNWVmIiwic2hhM18yNTYiOiI1YjI1Y2VlOGMwYmRjNzE2OWUwMjNjZDg2YzAyNjM3NTQ4Y2U4NDhmOTAzNTYyOTYxNGM3OTk3MDMxMjQxNjQzIiwic2hhM18zODQiOiJiN2NmNDU4NjQ5NTkwNDI2OTNhN2FkNGQ3Y2Y4MDlhYTg4NjliOTIxNmQ0MDViYTgxOTJjMzA0N2M0NzBjNmI5MDZmZDEwNmMwYzE1MjFjMjZiYTBjYTVhYTJlNzJmYWEiLCJzaGEzXzUxMiI6ImM2NjZmZWM2ZTI2ODIyZGRiYTYzNDI0OTVmNDJkZDY5NzhhYzkyMTNmY2Y5MjE1ODk3OGJiMDA0ZTZiMTIwNjBmMDU0YmJiMTYyMDY2ZTU3NDA2MTc0NGQxNjlkNGFmOWZlZGIwZjQwMzdkOTRkZmI1NzU1YzRjM2UxYjc5OWE0Iiwic2hha2VfMTI4IjoiMjFiM2UxOGNkZTEyMDQ4ODdhODE2MWRjYjE5MjQ4ZmY1ODk0ZTk4ZGVjMTFmMTllNjg2NDBjZWMyZmNiMzZjNCIsInNoYWtlXzI1NiI6IjY2NDNjNTg5ZjZjM2MwYTJlNmRkZWUyMGViZjhjNmZjZjI5MmE4YmVhYTM4OTNiNjM3ZWNhYmQ3ZTE4YWQyZDI1N2UyNDZmZjAxOTg4YjAyNTBkNDRlN2VlYTcxZDgyNmUxNjU3ZjRhOTg0NTVkNDljOTdkMDAzYjg2NDJkNWViIn0K', - 'eyJibGFrZTNfbXVsdGkiOiI4ODlmYzIwMDA4NWY1NWY4YTA4MjhiODg3MDM0OTRhMGFmNWZkZGI5N2E2YmYwMDRjM2VkYTdiYzBkNDU0MjQzIiwiYmxha2UzX3NpbmdsZSI6Ijg4OWZjMjAwMDg1ZjU1ZjhhMDgyOGI4ODcwMzQ5NGEwYWY1ZmRkYjk3YTZiZjAwNGMzZWRhN2JjMGQ0NTQyNDMiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNTIzNTRhMzkzYTVmOGNjNmMyMzQ0OThiYjcxMDljYzEiLCJzaGExIjoiMTJmYmRhOGE3ZGUwOGMwNDc2NTA5OWY2NGNmMGIzYjcxMjc1MGM1NyIsInNoYTIyNCI6IjEyZWU3N2U0Y2NhODViMDk4YjdjNWJlMWFjNGMwNzljNGM3MmJmODA2YjdlZjU1NGI0NzgxZDkxIiwic2hhMjU2IjoiMjU1NTMwZDAyYTY4MjY4OWE5ZTZjMjRhOWZhMDM2OGNhODMxZTI1OTAyYjM2NzQyNzkwZTk3NzU1ZjEzMmNmNSIsInNoYTM4NCI6IjhkMGEyMTRlNDk0NGE2NGY3ZmZjNTg3MGY0ZWUyZTA0OGIzYjRjMmQ0MGRmMWFmYTVlOGE1ZWNkN2IwOTY3M2ZjNWI5YzM5Yzg4Yjc2YmIwY2I4ZjQ1ZjAxY2MwNjZkNCIsInNoYTUxMiI6Ijg3NTM3OWNiYzdlOGYyNzU4YjVjMDY5ZTU2ZWRjODY1ODE4MGFkNDEzNGMwMzY1NzM4ZjM1YjQwYzI2M2JkMTMwMzcwZTE0MzZkNDNmOGFhMTgyMTg5MzgzMTg1ODNhOWJhYTUyYTBjMTk1Mjg5OTQzYzZiYTY2NTg1Yjg5M2ZiIiwiYmxha2UyYiI6IjBhY2MwNWEwOGE5YjhhODNmZTVjYTk4ZmExMTg3NTYwNjk0MjY0YWUxNTI4NDliYzFkNzQzNTYzMzMyMTlhYTg3N2ZiNjc4MmRjZDZiOGIyYjM1MTkyNDQzNDE2ODJiMTQ3YmY2YTY3MDU2ZWIwOTQ4MzE1M2E4Y2ZiNTNmMTI0IiwiYmxha2UycyI6ImY5ZTRhZGRlNGEzZDRhOTZhOWUyNjVjMGVmMjdmZDNiNjA0NzI1NDllMTEyMWQzOGQwMTkxNTY5ZDY5YzdhYzAiLCJzaGEzXzIyNCI6ImM0NjQ3MGRjMjkyNGI0YjZkMTA2NDY5MDRiNWM2OGVjNTU2YmQ4MTA5NmVkMTA4YjZiMzQyZmU1Iiwic2hhM18yNTYiOiIwMDBlMThiZTI1MzYxYTk0NGExZTIwNjQ5ZmY0ZGM2OGRiZTk0OGNkNTYwY2I5MTFhODU1OTE3ODdkNWQ5YWYwIiwic2hhM18zODQiOiIzNDljZmVhMGUxZGE0NWZlMmYzNjJhMWFjZjI1ZTczOWNiNGQ0NDdiM2NiODUzZDVkYWNjMzU5ZmRhMWE1M2FhYWU5OTM2ZmFhZWM1NmFhZDkwMThhYjgxMTI4ZjI3N2YiLCJzaGEzXzUxMiI6ImMxNDgwNGY1YTNjNWE4ZGEyMTAyODk1YTFjZGU4MmIwNGYwZmY4OTczMTc0MmY2NDQyY2NmNzQ1OTQzYWQ5NGViOWZmMTNhZDg3YjRmODkxN2M5NmY5ZjMwZjkwYTFhYTI4OTI3OTkwMjg0ZDJhMzcyMjA0NjE4MTNiNDI0MzEyIiwic2hha2VfMTI4IjoiN2IxY2RkMWUyMzUzMzk0OTg5M2UyMmZkMTAwZmU0YjJhMTU1MDJmMTNjMTI0YzhiZDgxY2QwZDdlOWEzMGNmOCIsInNoYWtlXzI1NiI6ImI0NjMzZThhMjNkZDM0ODk0ZTIyNzc0ODYyNTE1MzVjYWFlNjkyMTdmOTQ0NTc3MzE1NTljODBjNWQ3M2ZkOTMxZTFjMDJlZDI0Yjc3MzE3OTJjMjVlNTZhYjg3NjI4YmJiMDgxNTU0MjU2MWY5ZGI2NWE0NDk4NDFmNGQzYTU4In0K', - 'eyJibGFrZTNfbXVsdGkiOiIwNWI1MjNlN2Y2NTJhM2YxNGQ4YmQwMGRhMGY5NDdjMzM4NzllN2VhN2Y1OGQyYTA3YWJkNzJmMWIwZGZiZjFlIiwiYmxha2UzX3NpbmdsZSI6IjA1YjUyM2U3ZjY1MmEzZjE0ZDhiZDAwZGEwZjk0N2MzMzg3OWU3ZWE3ZjU4ZDJhMDdhYmQ3MmYxYjBkZmJmMWUiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMzhjMDllZWFkMGVhNjcyZDJlYzUzMTM4NmJkYmZlMTkiLCJzaGExIjoiYmMyYjc1MjdhODJlMGUwYjUwYmRmYjBhNjA1YTUxZGE4ZjAzMzIwYSIsInNoYTIyNCI6IjQ1NTAzYTgwMzY1ZDdmYTJhOTM2ZWEyY2JhMWRjNTIxZGM0MTc0ZDMxY2M2NGZhOTUyMmExM2ZiIiwic2hhMjU2IjoiODEyMmQ5MzA3ZDc0NDk3MmIyOWRkMjc5Y2FjODA5MzI5ZWJlYzU5MzU4YjMzNWMwNGFjZWY4ZjJlNjZkZTIyMiIsInNoYTM4NCI6IjhlYzJhNjA0NjExYmQxYTIxYWRjYTdhMGNlZmY3YmZmMmMzNWI3NzYyMjUwMWM0ZWJmYzFmZWY1ZTcwYTRlNzcxMmVjZWFkNGM0OGJkNjM2NzMzMWJiMWNkMGM4ZTdmNiIsInNoYTUxMiI6IjQ4NDE5YTM3NjBlOTcwMjEzZjYzM2VhNGE2MzQyYmE2MzhiMzMzMGM5NmFlY2Y4YTg4MmI4YTg2ODRiYTMzMWQyNDkyN2UzOTE2MjY3YThhODY2YmJmYWRlYTQ0Mzg0Njg2NDcxYjM1NjI4M2ZlODUyYTk5MDc0OWQyYTYyZWM4IiwiYmxha2UyYiI6ImM5MTk3NTQ4NDRjOWRhYTMxYzAxMmYxMzdhMjk5M2Y1MjM3YTIyMjMzZmFjOTRkMWUwNzhmYjMxNzVhNzZmNGViNTJjNmZhYzY2MjlhYjZhNDJjMjNhZWM0Y2U2Y2YxZWQyODFlYzg0MmZlODFjMmJkZGQyOGMyY2RkNjNlN2Q2IiwiYmxha2UycyI6IjE5MDE5ODZjN2I4OTZiOGEzOWJjOWY4MWNlMThmZmJlMGZkNzIxOThkY2JiZTc4MmRmY2JlZjMyNmI1OTU3YzciLCJzaGEzXzIyNCI6ImNkNjk0ZDdjODkzN2ZjMTExYzc1MjMyNWNhOTliMGMxYjc2YjdlOWJhMWZhZjRiMzJmNDlhOWEwIiwic2hhM18yNTYiOiJkYmVmNjc4YWM2N2E0MDJkYTVhMzlhZjc3NjQ0MDI5ZmY3ZjgxNzAyNjhjMjVkOWU0ZGU0YTRkMzIyYTkwMmU0Iiwic2hhM18zODQiOiI1OGQwNzFjMGZiMDY3ZmNjMDk4NTk1ZjdlYzE2MmEwYjcwYTIyYjg4Mjk0ZjJhYzY4NDQxYjg3YTRiNGQxYTVlM2MzYWRlMGFkN2U4M2M4ZjIxZGU0YTkxMDZhMTBlZWQiLCJzaGEzXzUxMiI6ImFkYTFiZWI0MDFhNjg2MDI2MDFhYWY0OTA3NjZhZjE1MmU0NjVlOGRmMTVhN2E5MzU1NWMzODE4Y2I5ZTAyYmEyOTY0ODZhMGY2MThiZTljN2IyNjdmYjBhYjUxYjEwZDIxYjRlNzIxYmIwN2EwNzg5NzNkZThhMmM5ZjM2MDQ4Iiwic2hha2VfMTI4IjoiZWE2YzljZGMyMWUxZjVmMTIwYTJjNzI0YzVkOTJiZmUyZjUzOWFhZDVmNDJhNjQ4MWYwMzFiMWY5ZTc1NDVmZiIsInNoYWtlXzI1NiI6ImQ1ZjMzNzVmYzY2YWU5ZWIzZDVkYTg2NzhlYTQ5Y2YzZjAyNWNhMDA0MzQyOWMzNzcxZWRmZWVhMDMwMmEzNjFmMGY4Y2FjYzYwYjg5YmUwODk0MWQ3MGY2MmVkODMxZjA3YzAwMjZjNmY0NTc2YTMwMzEwZDhkZTYwM2U4MjJmIn0K', - 'eyJibGFrZTNfbXVsdGkiOiJmMTUxOTEwODEzYjcyOGZhNjMyMzhjOWYzYTYyZGViOTA4MTU2YWEyYTcyNjUwYjk3OWY1MjU2ZWUwODliNzNmIiwiYmxha2UzX3NpbmdsZSI6ImYxNTE5MTA4MTNiNzI4ZmE2MzIzOGM5ZjNhNjJkZWI5MDgxNTZhYTJhNzI2NTBiOTc5ZjUyNTZlZTA4OWI3M2YiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNDIwNzkxMTdhOWE4YzMzM2U4NzY1NmZhZDE1ODQ2OGYiLCJzaGExIjoiZTk5ZWJlNjExNGY4NmM5MjMwN2M0ZWY1ZTYzMTU3ODI0MjhmZmJiOSIsInNoYTIyNCI6ImIxMzI0NDY5NmM3ZGNmYjFkNjFjNTdiZjA3NjVkYzBkM2YxMGE3ZTMwNjNkMTk3NTc1MmQ5MTdmIiwic2hhMjU2IjoiODgzZjU0MGJiNzc2MTQxZmEyMTU5ZDA1YjgxOTg3NThjMzA2YmYyNTk0Mjg5MTJkOTMyYjg0YmUwNjYwOGVmYSIsInNoYTM4NCI6ImRlNjhmNjBmMTUwNjljZGFkNzg2OTE4NmU4Y2IzMGFjMmExNjkxMzk3Y2MzNmI0ODMyNGNkNjY4M2QyY2Y4M2FiNjZlZGQxMDA3ZmM2NDk3YjkzY2ZmNDdiMWZjMGNlZiIsInNoYTUxMiI6IjRmODA0OWZjNWNlNmVhZTExNWViNmQxOTI3ODQ4MjcyNWFjMWJlOWFiYzNhYTBiYzc2N2JlNDg3NzZiODU0MTdlMTQxOTQxOTYyYWRkY2JlMzkzZDI4NzkxZTQ2NTU4MmVkZjIzOTgwYzEyOWIyYjkyYTllZmQzNTc0YjNjY2IzIiwiYmxha2UyYiI6IjI2ZGNlNjFlMDA0Y2Y2MTQzZDFlZDYwMjI0ODNhNTNkODMxZjFlNjFlZGEwNGMzNjk5N2M1MzI2Y2E2ZGY4ODlhYzVmYzM2YTYzMWViYWQ2NzVmMTBkMmYyZGRkZDcxOGFlZDQ1OTc4ODlhMDNlODQ0MGU3ZmMxODliZTRkZWZkIiwiYmxha2UycyI6IjE5MTE4MjFmZjQxOTQ3ZGU4M2UxN2Q4MzliMzI3NmUwNjg5Y2U3Y2Y1NGIwNzAwNzQwYWNhOGJkYzQ4NjdlNmUiLCJzaGEzXzIyNCI6Ijg1ZTVhNDg0MmY0M2FkMjg1MjY2NTMyNzQ2NWEwNjNhMGU5NDAwNWJlOTQ3MTdhMzY5NzY2ODk4Iiwic2hhM18yNTYiOiJlMjk5NzQ0NWZmNjg2ZTRlODdiYWVmYTcwOTEzNDQ0MGNkYjlhNjAzYTcxNGQwNzEzNjYzNDkxYTllZmRmZDFlIiwic2hhM18zODQiOiIyNzY0MjJiZmVhYWM4ZjM4NDBjMWUwNGY3ODQ2NTkwOWM1ZDhkYjRlYTU3ZWU1OTdjYTJmMWFlMDhhNzhkOGI0NWI3MTJiZmY3MTUwODAxM2NmMTY4MGRlNzdhNGM4OTUiLCJzaGEzXzUxMiI6IjYyZWQxMGFjMWQ1YmJjMDIzNWRjNjRhNGI3NjI0OWEzNzNkOTVhYTM1YTZjMzI1ZDZiNzVkM2EwM2Q3MzNkMjYyYmJhZDI3Zjg0NjcxYWFjYTgyYmQ0YjlhNWQwMGU4M2M5YzlmYzA3ZGNmMzA4YTg4ZTUyNTU3ZDI3NzFhYWZjIiwic2hha2VfMTI4IjoiNDQ5MmIwOWY3OTQ0NGEyOGQyYTdkZmRiZTc1YTc2MTMwODVjYTJhZGEwN2UwOTZiNjUwMjIwMzg1MzBlZDI1MSIsInNoYWtlXzI1NiI6IjFlMTI3MTE3ZDk3YTIwY2E5Y2QzMzU3YzNjMmQxOTFiOWEzMWRiNzNlZjM2ZjA4MmFjZGI2ZThiOWU1NDZiNGMzZWI3Mjg2OThjY2QxMmM4YjY2M2YxMDMzZGJhYzMxZjI0OThlZGUyM2JlZjY4ZTlmMzJjNmUzZDNhNzE1ZjkwIn0K', 'eyJibGFrZTNfbXVsdGkiOiI3Yjc5ODZmM2QyNTk3MDZiMjVhZDRhM2NmNGM2MTcyNGNhZmQ0Yjc4NjI4MjIwNjMyZGU4NjVlM2UxNDEyMTVlIiwiYmxha2UzX3NpbmdsZSI6IjdiNzk4NmYzZDI1OTcwNmIyNWFkNGEzY2Y0YzYxNzI0Y2FmZDRiNzg2MjgyMjA2MzJkZTg2NWUzZTE0MTIxNWUiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNzdlZmU5MzRhZGQ3YmU5Njc3NmJkODM3NWJhZDQxN2QiLCJzaGExIjoiYmM2YzYxYzgwNDgyMTE2ZTY2ZGQyNTYwNjRkYTgxYjFlY2U4NzMzOCIsInNoYTIyNCI6IjgzNzNlZGM4ZTg4Y2UxMTljODdlOTM2OTY4ZWViMWNmMzdjZGY4NTBmZjhjOTZkYjNmMDc4YmE0Iiwic2hhMjU2IjoiNzNjYWMxZWRlZmUyZjdlODFkNjRiMTI2YjIxMmY2Yzk2ZTAwNjgyNGJjZmJkZDI3Y2E5NmUyNTk5ZTQwNzUwZiIsInNoYTM4NCI6IjlmNmUwNzlmOTNiNDlkMTg1YzEyNzY0OGQwNzE3YTA0N2E3MzYyNDI4YzY4MzBhNDViNzExODAwZDE4NjIwZDZjMjcwZGE3ZmY0Y2FjOTRmNGVmZDdiZWQ5OTlkOWU0ZCIsInNoYTUxMiI6IjAwNzE5MGUyYjk5ZjVlN2Q1OGZiYWI2YTk1YmY0NjJiODhkOTg1N2NlNjY4MTMyMGJmM2M0Y2ZiZmY0MjkxZmEzNTMyMTk3YzdkODc2YWQ3NjZhOTQyOTQ2Zjc1OWY2YTViNDBlM2I2MzM3YzIwNWI0M2JkOWMyN2JiMTljNzk0IiwiYmxha2UyYiI6IjlhN2VhNTQzY2ZhMmMzMWYyZDIyNjg2MjUwNzUyNDE0Mjc1OWJiZTA0MWZlMWJkMzQzNDM1MWQwNWZlYjI2OGY2MjU0OTFlMzlmMzdkYWQ4MGM2Y2UzYTE4ZjAxNGEzZjJiMmQ2OGU2OTc0MjRmNTU2M2Y5ZjlhYzc1MzJiMjEwIiwiYmxha2UycyI6ImYxZmMwMjA0YjdjNzIwNGJlNWI1YzY3NDEyYjQ2MjY5NWE3YjFlYWQ2M2E5ZGVkMjEzYjZmYTU0NGZjNjJlYzUiLCJzaGEzXzIyNCI6IjljZDQ3YTBhMzA3NmNmYzI0NjJhNTAzMjVmMjg4ZjFiYzJjMmY2NmU2ODIxODc5NjJhNzU0NjFmIiwic2hhM18yNTYiOiI4NTFlNGI1ZDI1MWZlZTFiYzk0ODU1OWNjMDNiNjhlNTllYWU5YWI1ZTUyYjA0OTgxYTRhOTU4YWQyMDdkYjYwIiwic2hhM18zODQiOiJiZDA2ZTRhZGFlMWQ0MTJmZjFjOTcxMDJkZDFlN2JmY2UzMDViYTgxMTgyNzM3NWY5NTI4OWJkOGIyYTUxNjdiMmUyNzZjODNjNTU3ODFhMTEyMDRhNzc5MTUwMzM5ZTEiLCJzaGEzXzUxMiI6ImQ1ZGQ2OGZmZmY5NGRhZjJhMDkzZTliNmM1MTBlZmZkNThmZTA0ODMyZGQzMzEyOTZmN2NkZmYzNmRhZmQ3NGMxY2VmNjUxNTBkZjk5OGM1ODgyY2MzMzk2MTk1ZTViYjc5OTY1OGFkMTQ3MzFiMjJmZWZiMWQzNmY2MWJjYzJjIiwic2hha2VfMTI4IjoiOWJlNTgwNWMwNjg1MmZmNDUzNGQ4ZDZmODYyMmFkOTJkMGUwMWE2Y2JmYjIwN2QxOTRmM2JkYThiOGNmNWU4ZiIsInNoYWtlXzI1NiI6IjRhYjgwYjY2MzcxYzdhNjBhYWM4NDVkMTZlNWMzZDNhMmM4M2FjM2FjZDNiNTBiNzdjYWYyYTNmMWMyY2ZjZjc5OGNjYjkxN2FjZjQzNzBmZDdjN2ZmODQ5M2Q3NGY1MWM4NGU3M2ViZGQ4MTRmM2MwMzk3YzI4ODlmNTI0Mzg3In0K', - 'eyJibGFrZTNfbXVsdGkiOiIxNGY2MzBkNmQ0ZGFiYTE1ZjVmMmEyODA1ZjYxZTFkODZmYjA0OTlmZDBhMGZmYjdhNTM2NDIyYmRlYWIwODFmIiwiYmxha2UzX3NpbmdsZSI6IjE0ZjYzMGQ2ZDRkYWJhMTVmNWYyYTI4MDVmNjFlMWQ4NmZiMDQ5OWZkMGEwZmZiN2E1MzY0MjJiZGVhYjA4MWYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZWRlNTBjNmM1NDkwNmM0NzBlNTY1NTI0NzcyMGNkMGQiLCJzaGExIjoiODZjZDFiOWM2ODY3NzYzODgwZTgwN2M2MmRmNDljMWNkNWUyODRlNiIsInNoYTIyNCI6ImM4MmI5NjA2NzlhYTNmNTZlYjIyNjllYmI5YjdiM2EzYTJiMzUxMDlkMzE0YjdmMDEwYzQ2ODFkIiwic2hhMjU2IjoiNTc1NDBhODhmYjM4ZGNjNWQ2MzA1OTE4ZDM4MWQ3M2I5NzliODhmOGNjM2ZlMjg3ODU5OWI3OGE3YzUyZGNkNiIsInNoYTM4NCI6IjhjM2Y1NmJhNjdlZmJjZmQyMzkwMjcwYjVjMjdjZTBiMzUxZTI3OTkwNGMyYTQ1ZGNmNzJmOWVlMWE3YTdhOTlkODM4YzMzZGNiZWVlZTc1ZWYxYzYwMzcyZjBmODcyNCIsInNoYTUxMiI6IjkzMGViNGE1ZDhkOGQxMTg0MWEyNGM2ZWU4YzA2YjBmZWYzZDlkOGIzYmI1NTRhNmNkZDg2M2JiNWZlOGY5MjQwOWU0Nzk1N2EzODNiNTNmMjNjMDhiMWRiY2QyYTQ4NmQ5YmNjMTNhZWJhNmU1YjA0MzIzNWUzMWUyNzQ5YjJhIiwiYmxha2UyYiI6IjAyNjZmNDU1YWQzODY5ZmFmNjUwYzc0M2VlN2Y3NzIzMjMzM2U1NDVkYWY3MTAyNGE0MzZhNmM1MzBkMDFlMDkwYzdjYzgyZGUxMjc2YTY5MTBmY2QyMDVlZGI5M2ZmOWY3MzEwNDYzYTNlYmFiNzJlZDAwNTdhMThlNTQxOWI5IiwiYmxha2UycyI6ImNiNjc3YThkOTdmNmYxYWQyNTE5MjgwOWRjYzlhZjFiYjJlZDNmNjBhNzQ4ODAyYWJiNTJmZTUyMzQ2Y2ZiOGQiLCJzaGEzXzIyNCI6ImNkNDQyYTliMWNiZjNlOGEzMGQwMTJmNzRkNjAxNmRjYTU1OTEzYjgxM2YzOGY0ZTlmYmViMmY2Iiwic2hhM18yNTYiOiJjZDlhNDdlNGU5ZDMyNTdlM2FmNGEwM2QwMGIxM2JmYzUyMTY5YThhYTIyNGNhMTE3OTljMTY1YjU2MjBlMTcxIiwic2hhM18zODQiOiIzMjIwNzJjODk4YTk3NzkzNWQzYzQ3Y2VlOGI2YTU5MmI1NzhjMWMyZjllMmJhNGUzZWRiYmUxMzM4NDY2YzAyYWJiZjVjMjhkN2Y5Y2M0ZWMyMzRiMzM0NWYyNjM2YWQiLCJzaGEzXzUxMiI6IjA0Y2NmYjQwZDBlNTc0MTk4NjkyYTU1ZTAwM2QzODY5NjdmZWVjYjZkMTFmYTYzZGIwMWJlYTdkMDA2MmZhODg5OTJhOWRiNzMwZjZhZjk0NWJjZjRiNWI5YzllN2VjMGVlMDBhYmUyOWMyMmY1OGE1OWNhYzc1YzgyNWU0NzFmIiwic2hha2VfMTI4IjoiMjliNWJhMDZmYWExZDU2MzM1ZDFhNDJmNjkwMWE0YjRlZDUyOTFiYjJlY2EzZjFjNTNkNjY5MjU4ZjIwMWMxNSIsInNoYWtlXzI1NiI6IjRjZGU5MTg5NDlmYzdlZjJmMTg0ODFjZTI4NTI2YTBlMDU4ZDhhYTEzNmYyZjdjYWY0M2NhMmQzYTAzYjgzNTE3OWJjZTgzNTQ0N2QzN2Y0YWE5NTAzYTcwYjI3NzQxNjU5NDA0NjNlNWQ0MmFiOGE1MDZjMjJjZTFkYjQ4NzAwIn0K', 'eyJibGFrZTNfbXVsdGkiOiI4ODlmYzIwMDA4NWY1NWY4YTA4MjhiODg3MDM0OTRhMGFmNWZkZGI5N2E2YmYwMDRjM2VkYTdiYzBkNDU0MjQzIiwiYmxha2UzX3NpbmdsZSI6Ijg4OWZjMjAwMDg1ZjU1ZjhhMDgyOGI4ODcwMzQ5NGEwYWY1ZmRkYjk3YTZiZjAwNGMzZWRhN2JjMGQ0NTQyNDMiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNTIzNTRhMzkzYTVmOGNjNmMyMzQ0OThiYjcxMDljYzEiLCJzaGExIjoiMTJmYmRhOGE3ZGUwOGMwNDc2NTA5OWY2NGNmMGIzYjcxMjc1MGM1NyIsInNoYTIyNCI6IjEyZWU3N2U0Y2NhODViMDk4YjdjNWJlMWFjNGMwNzljNGM3MmJmODA2YjdlZjU1NGI0NzgxZDkxIiwic2hhMjU2IjoiMjU1NTMwZDAyYTY4MjY4OWE5ZTZjMjRhOWZhMDM2OGNhODMxZTI1OTAyYjM2NzQyNzkwZTk3NzU1ZjEzMmNmNSIsInNoYTM4NCI6IjhkMGEyMTRlNDk0NGE2NGY3ZmZjNTg3MGY0ZWUyZTA0OGIzYjRjMmQ0MGRmMWFmYTVlOGE1ZWNkN2IwOTY3M2ZjNWI5YzM5Yzg4Yjc2YmIwY2I4ZjQ1ZjAxY2MwNjZkNCIsInNoYTUxMiI6Ijg3NTM3OWNiYzdlOGYyNzU4YjVjMDY5ZTU2ZWRjODY1ODE4MGFkNDEzNGMwMzY1NzM4ZjM1YjQwYzI2M2JkMTMwMzcwZTE0MzZkNDNmOGFhMTgyMTg5MzgzMTg1ODNhOWJhYTUyYTBjMTk1Mjg5OTQzYzZiYTY2NTg1Yjg5M2ZiIiwiYmxha2UyYiI6IjBhY2MwNWEwOGE5YjhhODNmZTVjYTk4ZmExMTg3NTYwNjk0MjY0YWUxNTI4NDliYzFkNzQzNTYzMzMyMTlhYTg3N2ZiNjc4MmRjZDZiOGIyYjM1MTkyNDQzNDE2ODJiMTQ3YmY2YTY3MDU2ZWIwOTQ4MzE1M2E4Y2ZiNTNmMTI0IiwiYmxha2UycyI6ImY5ZTRhZGRlNGEzZDRhOTZhOWUyNjVjMGVmMjdmZDNiNjA0NzI1NDllMTEyMWQzOGQwMTkxNTY5ZDY5YzdhYzAiLCJzaGEzXzIyNCI6ImM0NjQ3MGRjMjkyNGI0YjZkMTA2NDY5MDRiNWM2OGVjNTU2YmQ4MTA5NmVkMTA4YjZiMzQyZmU1Iiwic2hhM18yNTYiOiIwMDBlMThiZTI1MzYxYTk0NGExZTIwNjQ5ZmY0ZGM2OGRiZTk0OGNkNTYwY2I5MTFhODU1OTE3ODdkNWQ5YWYwIiwic2hhM18zODQiOiIzNDljZmVhMGUxZGE0NWZlMmYzNjJhMWFjZjI1ZTczOWNiNGQ0NDdiM2NiODUzZDVkYWNjMzU5ZmRhMWE1M2FhYWU5OTM2ZmFhZWM1NmFhZDkwMThhYjgxMTI4ZjI3N2YiLCJzaGEzXzUxMiI6ImMxNDgwNGY1YTNjNWE4ZGEyMTAyODk1YTFjZGU4MmIwNGYwZmY4OTczMTc0MmY2NDQyY2NmNzQ1OTQzYWQ5NGViOWZmMTNhZDg3YjRmODkxN2M5NmY5ZjMwZjkwYTFhYTI4OTI3OTkwMjg0ZDJhMzcyMjA0NjE4MTNiNDI0MzEyIiwic2hha2VfMTI4IjoiN2IxY2RkMWUyMzUzMzk0OTg5M2UyMmZkMTAwZmU0YjJhMTU1MDJmMTNjMTI0YzhiZDgxY2QwZDdlOWEzMGNmOCIsInNoYWtlXzI1NiI6ImI0NjMzZThhMjNkZDM0ODk0ZTIyNzc0ODYyNTE1MzVjYWFlNjkyMTdmOTQ0NTc3MzE1NTljODBjNWQ3M2ZkOTMxZTFjMDJlZDI0Yjc3MzE3OTJjMjVlNTZhYjg3NjI4YmJiMDgxNTU0MjU2MWY5ZGI2NWE0NDk4NDFmNGQzYTU4In0K', - 'eyJibGFrZTNfbXVsdGkiOiJlODQwMjE4NDU5NWE4ZWVkMzk4MDFiNzE5YzVhYzgyMjllN2ZkNWI0YWY4YTYwNTIxMzNmYmY5ZjM3MjgwMjY5IiwiYmxha2UzX3NpbmdsZSI6ImU4NDAyMTg0NTk1YThlZWQzOTgwMWI3MTljNWFjODIyOWU3ZmQ1YjRhZjhhNjA1MjEzM2ZiZjlmMzcyODAyNjkiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZjRiMjE2MjNmNjI5NzZjNjhjY2JjNzdjMTdkZTY1MjgiLCJzaGExIjoiZTI1NjlmNDc0NGFlYzVjOTY0M2VjYzhhYzRkOTJiNGQxZjFiZGIwMiIsInNoYTIyNCI6IjllYTI5ZjY2MWNkMTQ4MTAzMjU3OGY3YTk5YjVmZWU3YjQwMTVkMGRjZTRiZDBiOTBjZmRjNGY1Iiwic2hhMjU2IjoiYTAzMDZjNmYyN2ExOTRkNzQyNTI5ZmFjZTRmMjhkOGM5ZDkzNWQ2ODk2NjA0ZmE2YWRmMGJhNDUyMjE2MTU1ZSIsInNoYTM4NCI6ImMzNGVhODc4NGViOWY1NzcyNmQ3ZjNjNzMyMjhkMzJhMTlmNzY3ZDFiNTA1MGUwZTY4MzE5MjQ5MDM1YmQ4OWM4NTQyN2MxMzM5YWE4N2Q0Y2NjYjBhNzUwN2E4OWY4OSIsInNoYTUxMiI6Ijg4MzE3ZGIzMmVmOWI4MmJmYjE5NTk2ODUwZDkyZWU3ZDYxNTE4YTE1NTYxYmY0MTgyNGY5OTg1YThhZjliYzc1N2RlNmEwNzlmOTIwMGE2N2E5YWY3NzNlZmFjYjg3MmUzMGI2N2I5MDllNmU2NDg0YjQzMmQ5NjRlN2JmYTExIiwiYmxha2UyYiI6IjNjMmY1MTQ0OWEyZWNhYjBjZDVhMzQwYWI5MThhZmQ1NjRjZjc0YWZhNTQ0MmI0N2E5N2E2MGQ1OWYzYTJiMDc2ZTljMWVjMDliMjI4ZjNhNWE1MTNiMjBjZDhkZDBhZmMzYTI4NTc1OTRkOWZmNjUxMjBjOTAwMDc3MTU1ODFkIiwiYmxha2UycyI6IjEzYzk2YmI0ZDM0M2M0YzFhMDE2MzY0NGYyNTA1M2E4ZTRmMTJiOTE4YjcyYWRiMWM2M2Q0ZmFjZjlkNWE4ZTQiLCJzaGEzXzIyNCI6IjFhZmE4MmIwYWE5MGE5MmI4YzM2ZDE1ZDllYWJjZDlhYTI5MTk1YWZmYzIyNTQzOTkwNTI0ZGFiIiwic2hhM18yNTYiOiJkZDU5NTg4MWEzNmNlZTA0MjY4NjNlM2VkN2ZiMmI1NmI5NDY5ZTE4ZmI4NzkzNWFmZGU2MGYzZWMzMzJjNWI1Iiwic2hhM18zODQiOiIzOTRhYzg0NTgxYzJlMGQ4YWM3YTdjMzI1ZjllNGE3MGFmMjI0N2I4MmI3NDIzY2YxY2UzYmNkZGNmODhmMWU1MmMxNWRhMjA3ODU4YWY2NDBkYmEyOWY4OTg2YWQwODciLCJzaGEzXzUxMiI6ImY2OGRmOTJiNGNhN2JiMDQ5OTNmNWNkNGFhMTgzMGYzMTA3OWJiMGZiMmY5ZDI5OWNhOTE4Yzg1NDRlZjJhNjg5Y2Y2MzkwNmEyZTVkZjUwOTFiMDJhYTMzN2Y1MWI5Mjk5ZWNjMDUyN2FjODMwMmY1NjVjZjRjNDE1ODVjNDkyIiwic2hha2VfMTI4IjoiOTMxNTgzNmQ2M2QxODhiYjAzMmJlYmU0YzFhNzZhZjZhZjhjNmIxYzI4YmEyMTcxY2RiNjAzY2ZmNzg4N2ZkNSIsInNoYWtlXzI1NiI6IjQxNDNhNzU1NWZiYTQ3MTljNWZhZDA4ZTdhOWZkNjUzNDJmMzc2OTgzYzVhMWI3OTNjN2M2NWQ2Yjg0Y2RkMjNiOTRiMGUwZjhmODhlZGNhMmQ3MWYzODczMDk5ZjIxYTM5YjEzMTFiZjI1NmFiYzFiMTU1YTgzYTQwM2NkYmY4In0K', - 'eyJibGFrZTNfbXVsdGkiOiJjZGY5ZDgyODIxNmRhMmY0MmNjOWFjM2I4NTU2MzJkZDhkZWE5YzY3NjA3ZjJjNmI2NjRiY2FmZTI5MTUzOGZkIiwiYmxha2UzX3NpbmdsZSI6ImNkZjlkODI4MjE2ZGEyZjQyY2M5YWMzYjg1NTYzMmRkOGRlYTljNjc2MDdmMmM2YjY2NGJjYWZlMjkxNTM4ZmQiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMzE3YmE1Y2ZjMmQzNzE4YjBhOWVhYjllY2U5NDZjZDQiLCJzaGExIjoiZWYxNzQyMjI0NDdiM2MxOTQzMTNjNWE1ODlkN2MzOGZjNzQxMmFiZSIsInNoYTIyNCI6ImM2YjcwN2U4OGM5ZDZmMjFhMDgyNzczN2YwYzc1MmQ3NjUxY2ZkZGQzMzg4ODY5ZDE2ZDA4ZGVhIiwic2hhMjU2IjoiN2JhZTgxMWFjYjAyODhkOTRmZjEwODE3ODFlMTNkY2E2Yjk2NDVlOGQ0NGFkNmIwMWIyM2I2NDdlNTdjZDhhNyIsInNoYTM4NCI6IjgyMjM1ZjkzZmU5MDBkNDg4YmVjOTg3NWM1NjRhN2UzNTc5Y2NiY2Q2ZjI5YjM5MDQwZjU3NTAxNzRiNGVkYjc4MDgyN2ZiNjQ3NDExMGVkZTQwMWJhNDAyMzE0ODRlZCIsInNoYTUxMiI6ImU1ODVkMTQ4MmU4ZDg3YzEwMTFjYTNlODI2M2I0N2RmMTQ4OWVlNDczMjY4Njg5YjBhMDVjZDEzNTcxZWViMjg3YTg0N2E0NDI1ZjQxMTY5Njg5Y2Q5N2VkMzZmYzFjNWZjZjMxNjNmMjQyYmY4MTAyZmYzZjk3YjYxYzc4ODNjIiwiYmxha2UyYiI6IjlhMmIxNGJjZmFkOWJlOGM5MWI5ODRjMTc3Yzk3MWMxY2JmZGExZjFiZDRmNTljMWU1MzgwNzc1MDI4ZDI3YWIzMWNjZmRhNzc0OWY1Mzc3Njk2NDAyMDZlNzRmMmQ1ZjQzMmIzZTYzNWY5YzgwZmVkODlmM2Y0NzhkOWExZDViIiwiYmxha2UycyI6IjJiYTgzNTBiNmMwNzRiZTkwOTIwNzE0Zjk0ODI0MDZlYzdjNzUwNGZkNDA4N2Q0NGM4ODQwNGU3MDYwN2E1MjUiLCJzaGEzXzIyNCI6ImViMzEwZTEzODVlNTFkOWExMDViNjQxY2UyNmZhNDU1MWZmODhjNmY4ZDVhYzE0YzUzZDMwNWVmIiwic2hhM18yNTYiOiI1YjI1Y2VlOGMwYmRjNzE2OWUwMjNjZDg2YzAyNjM3NTQ4Y2U4NDhmOTAzNTYyOTYxNGM3OTk3MDMxMjQxNjQzIiwic2hhM18zODQiOiJiN2NmNDU4NjQ5NTkwNDI2OTNhN2FkNGQ3Y2Y4MDlhYTg4NjliOTIxNmQ0MDViYTgxOTJjMzA0N2M0NzBjNmI5MDZmZDEwNmMwYzE1MjFjMjZiYTBjYTVhYTJlNzJmYWEiLCJzaGEzXzUxMiI6ImM2NjZmZWM2ZTI2ODIyZGRiYTYzNDI0OTVmNDJkZDY5NzhhYzkyMTNmY2Y5MjE1ODk3OGJiMDA0ZTZiMTIwNjBmMDU0YmJiMTYyMDY2ZTU3NDA2MTc0NGQxNjlkNGFmOWZlZGIwZjQwMzdkOTRkZmI1NzU1YzRjM2UxYjc5OWE0Iiwic2hha2VfMTI4IjoiMjFiM2UxOGNkZTEyMDQ4ODdhODE2MWRjYjE5MjQ4ZmY1ODk0ZTk4ZGVjMTFmMTllNjg2NDBjZWMyZmNiMzZjNCIsInNoYWtlXzI1NiI6IjY2NDNjNTg5ZjZjM2MwYTJlNmRkZWUyMGViZjhjNmZjZjI5MmE4YmVhYTM4OTNiNjM3ZWNhYmQ3ZTE4YWQyZDI1N2UyNDZmZjAxOTg4YjAyNTBkNDRlN2VlYTcxZDgyNmUxNjU3ZjRhOTg0NTVkNDljOTdkMDAzYjg2NDJkNWViIn0K', - 'eyJibGFrZTNfbXVsdGkiOiI0NzViMjdmNGJiN2MzYTUxMjRhNDY1ODYwOTA2NjZlZGJiYzQ0MWEwYzk2ZDQ1ZDNlODA4YjhiMWVlMmFjOGM5IiwiYmxha2UzX3NpbmdsZSI6IjQ3NWIyN2Y0YmI3YzNhNTEyNGE0NjU4NjA5MDY2NmVkYmJjNDQxYTBjOTZkNDVkM2U4MDhiOGIxZWUyYWM4YzkiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMjdkNTgwNzFmMTcxODM5MmRkMzFlYjViMDljYzAxOGEiLCJzaGExIjoiOTYyNGIwNmRlMWVmZGFkYTY3YzEwM2M5Y2FhMmZhNzY5ZDZlMTFlMCIsInNoYTIyNCI6Ijk1MjI1MWM2NGQ1NWU0ZjAyYTQ5NmIxODdjMjE4OTMxZWExYmFhZWU2YWM5NDEyMGI5OTJhYjM4Iiwic2hhMjU2IjoiOWFiYTI2YWJkZmNkNDYwNzNlMGExZDQyMDI3YTNhM2JjYzk2OWY1NjJkNThhMDM2MzdiZjBhMGRlZDY1ODZjOSIsInNoYTM4NCI6ImE1MzA3ZjRmZDgyYjM4ZGIxMGM0MzA1NTkwOTBjYTY2ZDYwYmU5ZGZhZGQzNTViYWM3YThiNzA0MmY5NjRkMmIzMGY4YjVjOTQwNTEzYzY1OGI3ZjhjMTM4ODZhZDM3ZCIsInNoYTUxMiI6ImIyZTYyNGJkOWYzNDM4ZTM1NmMwODIyOTljYThmZWJhZjkxY2I4MTFhMmU1MWU0NTI4M2VlNjc0MGYzOTNjYTQyNmUzZTEwZTdhMzFkODI3ZDk3MDE5ZGRlYjBkY2Q2OGFkMjI0NjcyZThiMDQ4NDVkYmQ4ZWRlMmEyNzU3MDYwIiwiYmxha2UyYiI6IjNlZmViNDhiMzQ5NTE4YzRhMTY4NDEzNjE3MGNjMDRhYzQxMmY2YTEyMjcxY2JkOWRjZmQyMTUzNTY1Y2Q0NzNjNGRiZWNmMDkzMDIxNzQ5YzY4NDBmZDFjNzQ2ZjFlYTUyMzA5MTNjY2IwM2E0YzgyYTIzMDI4OTk3ZDI1M2Y3IiwiYmxha2UycyI6ImFjZTllYzg1YWFhMjYxNzY3NjhjY2FjNzdlNDQ4ZjJiZjYyOTYyNjNjOTZmYzk2ZGNlZWI2NjdkMmRkZGZiNDMiLCJzaGEzXzIyNCI6IjU0ZTg1NTBkNWU5ZDRmMTg1MWI1ZGE3NmU4N2ExZTMzNDViZDVkODhkZDFlMDUxYWI0ZTI1OGI5Iiwic2hhM18yNTYiOiI4MjgwYTU2NjQ2YWU1OTg4ZTQ2NTZiMDg5NGZmZDI1Y2QxOTdlMjUxNzY4NWNlZWIyYjUzMTMxM2NlNjc2MjRmIiwic2hhM18zODQiOiJiYzYwMDg3NTYzYWJmY2NlYWM3ZmNjM2ExMzljYzQ5YWRkODkyYWZhMjNhZTEwZmE2MzUzZDhiYjc5YmVjNzRmOTRlN2U0NDQwMmIzM2FjMTIxY2Y4YWFiOTg1YWRlNWEiLCJzaGEzXzUxMiI6ImFmMThjODdlNzY0YWJlZWYzZWNlNDc0YzA2YjUxNzBjYTg5M2QyMTJmZGQ5ZDM0NDRmMzI5ZDBjNmIxZTEwZjk1Y2Y1NjU0YWFiM2I0OWY0ZTA0NzQwY2UyZTgyYjk0MTg4NTBjOTcxOTk5NGFhY2Q0ZmVjZGVmYmYwMDdhYTI3Iiwic2hha2VfMTI4IjoiNWM5NmFhMTViNzg3YzkwMWM0MmQ3NzAyODcwYjQzZWM3OTUxZjBjODVjZTY1YmQzYTYyZDc4YTQ0ODBiNDQzZCIsInNoYWtlXzI1NiI6ImY0MDU4MGU5ZjRkNTJiZmFjNDFjM2RmZmUxOTk4ZDU3OWYyNjlhMGVlNjgwYmYzNGI5MmE0MDYxZTEwOGNmZTM1MTAwYjE5YzE4NTY3ODJjMTlkYTYzNjNkNTQ0ZTY2M2IyNWMzMWJlYjNjNmZlOTBkYWIzZWZhZTgwNzE1ZjA3In0K', - 'eyJibGFrZTNfbXVsdGkiOiIyNzhjZjk1MzhhZTQ0ZTNkNzNiOGE0YmMxMGIxODcxOWEyYTM3ZDJmYmY1NzA0ZjY2ZWU4MTVlNWNhODkxMWU2IiwiYmxha2UzX3NpbmdsZSI6IjI3OGNmOTUzOGFlNDRlM2Q3M2I4YTRiYzEwYjE4NzE5YTJhMzdkMmZiZjU3MDRmNjZlZTgxNWU1Y2E4OTExZTYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNGQ1YTgxY2FjYjRhZDdhZWVjNGFkM2VmMDQ3OGM2OGMiLCJzaGExIjoiOWU2OWMwMGI0OTJkNGY2NDkwMzlhM2RkM2U4YTg4ZTU2YmVmOGQ1OSIsInNoYTIyNCI6IjhhOTAxYjhkMjlhZjgyZWQ0MzhmZDlkNzFjMmVjMDNmZDllYmEzZjFlZTQwNjdiZTlkODk5NGUzIiwic2hhMjU2IjoiMjM5ODFmZjRhNWNmYWJjZDZlYzRjN2ZjOTA1YWRkYTNkMTJkZjFkZWI0MDBlZDM1Y2EwZDNkZTE1OTkwOGFiOCIsInNoYTM4NCI6IjUyMDJmODQzMGYzZGY1YTM5OTQ1NTZkZGIyMDUzMmU1ZGNlMzEzNTBmMjYzZWM0OTZhNjQ3NWRkYzg5YTY4NjYwNDIzZWM4YzU1NGVmOThlY2YxOTQwNzA2NjllMDg5MyIsInNoYTUxMiI6IjNiYWU1ZGRjZjcyMjRiMjU1ZDliYTE3YjAwNDdhNjc0YjI0NzE5Zjg2N2E1ODU0OTU2MWY5NWFhMTE4NTFhMzkxNDkxNDllN2Q3MGY4ODJhMDQ1ODk0YzIyZjQ1MzQxNGNiOGIwMGZiNzVlYmQxNzY5MWRjZmNjY2E1YzQ1YjY1IiwiYmxha2UyYiI6ImZlZjBkZWNlYmU4YTNlNmNmOTNhMGZjNDljNWU4YjU2ZTAxZWY4NGU4NWQyZmIxNDMzZTkxMzBhOGY4ZmNmMGE5ZWRkZjJlN2I5YjMzYTYxYzhhYjhkODhmZGQ1NjJkOGZkZjY3Njg1YjY1YjU3ODEyMjc1YzkyNmRjOTc5MjkwIiwiYmxha2UycyI6ImIwMjRmOTAyNGM4MmQwNzU1OWYwMGUxMGE1NGVkMzRjMGIzNDEwYzc4NzMxMDI5YTUxNjY2NWZhMjFlZWE4YjMiLCJzaGEzXzIyNCI6ImFiM2UyY2U2Y2U4NWM1YTQyYzhhOWRjMTgxYjNhODJlYzFiMzU1NzgzOGVhMDRlOTYyOWQ1MDZjIiwic2hhM18yNTYiOiJlYTBiYTU4ODVkNzA3ZWIyMDk2YWYzMThmZjEzYmRmOTE5YjY5MzM5YmFjZDY3OWFhODRlMTg1MDZiYjBjYzBlIiwic2hhM18zODQiOiJkYTc2YjAzZWFlMmIxNWMzNTFhYjcxZGNiOWExZDNjYzgxMDliOTBhOWUzZTBiYjY2ZTUzZDUxYzVjNmY2ZWMwYzJmMzgyNGVkZDY3NDYwMTgwZGU2YTQxMzE5OWRkYzkiLCJzaGEzXzUxMiI6ImE5OWZkZjU5YjNlMDY2MDQ3MzQ2N2VjMGJiMWI0MDljMmM4ZTc2YjQxMDdlZmQ0ODhmZjY0YzgyMDg2YmZiZWNjNmZiOGExODJjOWJiNzcwYzU4M2U5YzBiNjE3ZThkYTRlYmJmMzQwZTI1M2JkYmQ1ZWEyZDY3ZjBmNjQ2MzVmIiwic2hha2VfMTI4IjoiZWZmY2Q4MDc2M2E0YjcyYjJmMjFlYzQ0OGVhMzA5MGQ3ZGNmMmFiODZkN2U5NTdkNjkzODliYWI2ODBlZTFkOSIsInNoYWtlXzI1NiI6IjVkNTc5YmMzYTdhMTc2MDMzYjc2NzUwMjNkZTYxMzM0OTFmNzM3YWRlM2U5Y2Q0OGY3MTEzZTE4ODg1ZWFjZjA0ODlhZTRkZTQwMGE2ZWRjYzAwNTEzODhiZWMxZmFlNzJjNzI0NWEyMDdlMTc1OGZiMTg2OTczYjQ2NmE4NTg0In0K', 'eyJibGFrZTNfbXVsdGkiOiI2Y2M0MmU4NGRiOGQyZTliYjA4YjUxNWUwYzlmYzg2NTViNDUwNGRlZDM1MzBlZjFjNTFjZWEwOWUxYThiNGYxIiwiYmxha2UzX3NpbmdsZSI6IjZjYzQyZTg0ZGI4ZDJlOWJiMDhiNTE1ZTBjOWZjODY1NWI0NTA0ZGVkMzUzMGVmMWM1MWNlYTA5ZTFhOGI0ZjEiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZDQwNjk3NTJhYjQ0NzFhZDliMDY3YmUxMmRjNTM2ZjYiLCJzaGExIjoiOGRjZmVlMjZjZjUyOTllMDBjN2QwZjJiZTc0NmVmMTlkZjliZGExNCIsInNoYTIyNCI6IjhjMzAzOTU3ZjI3NDNiMjUwNmQyYzIzY2VmNmU4MTQ5MTllZmE2MWM0MTFiMDk5ZmMzODc2MmRjIiwic2hhMjU2IjoiZDk3ZjQ2OWJjMWZkMjhjMjZkMjJhN2Y3ODczNzlhZmM4NjY3ZmZmM2FhYTQ5NTE4NmQyZTM4OTU2MTBjZDJmMyIsInNoYTM4NCI6IjY0NmY0YWM0ZDA2YWJkZmE2MDAwN2VjZWNiOWNjOTk4ZmJkOTBiYzYwMmY3NTk2M2RhZDUzMGMzNGE5ZGE1YzY4NjhlMGIwMDJkZDNlMTM4ZjhmMjA2ODcyNzFkMDVjMSIsInNoYTUxMiI6ImYzZTU4NTA0YzYyOGUwYjViNzBhOTYxYThmODA1MDA1NjQ1M2E5NDlmNTgzNDhiYTNhZTVlMjdkNDRhNGJkMjc5ZjA3MmU1OGQ5YjEyOGE1NDc1MTU2ZmM3YzcxMGJkYjI3OWQ5OGFmN2EwYTI4Y2Y1ZDY2MmQxODY4Zjg3ZjI3IiwiYmxha2UyYiI6ImFhNjgyYmJjM2U1ZGRjNDZkNWUxN2VjMzRlNmEzZGY5ZjhiNWQyNzk0YTZkNmY0M2VjODMxZjhjOTU2OGYyY2RiOGE4YjAyNTE4MDA4YmY0Y2FhYTlhY2FhYjNkNzRmZmRiNGZlNDgwOTcwODU3OGJiZjNlNzJjYTc5ZDQwYzZmIiwiYmxha2UycyI6ImQ0ZGJlZTJkMmZlNDMwOGViYTkwMTY1MDdmMzI1ZmJiODZlMWQzNDQ0MjgzNzRlMjAwNjNiNWQ1MzkzZTExNjMiLCJzaGEzXzIyNCI6ImE1ZTM5NWZlNGRlYjIyY2JhNjgwMWFiZTliZjljMjM2YmMzYjkwZDdiN2ZjMTRhZDhjZjQ0NzBlIiwic2hhM18yNTYiOiIwOWYwZGVjODk0OWEzYmQzYzU3N2RjYzUyMTMwMGRiY2UwMjVjM2VjOTJkNzQ0MDJkNTE1ZDA4NTQwODg2NGY1Iiwic2hhM18zODQiOiJmMjEyNmM5NTcxODQ3NDZmNjYyMjE4MTRkMDZkZWQ3NDBhYWU3MDA4MTc0YjI0OTEzY2YwOTQzY2IwMTA5Y2QxNWI4YmMwOGY1YjUwMWYwYzhhOTY4MzUwYzgzY2I1ZWUiLCJzaGEzXzUxMiI6ImU1ZmEwMzIwMzk2YTJjMThjN2UxZjVlZmJiODYwYTU1M2NlMTlkMDQ0MWMxNWEwZTI1M2RiNjJkM2JmNjg0ZDI1OWIxYmQ4OTJkYTcyMDVjYTYyODQ2YzU0YWI1ODYxOTBmNDUxZDlmZmNkNDA5YmU5MzlhNWM1YWIyZDdkM2ZkIiwic2hha2VfMTI4IjoiNGI2MTllM2I4N2U1YTY4OTgxMjk0YzgzMmU0NzljZGI4MWFmODdlZTE4YzM1Zjc5ZjExODY5ZWEzNWUxN2I3MiIsInNoYWtlXzI1NiI6ImYzOWVkNmMxZmQ2NzVmMDg3ODAyYTc4ZTUwYWFkN2ZiYTZiM2QxNzhlZWYzMjRkMTI3ZTZjYmEwMGRjNzkwNTkxNjQ1Y2U1Y2NmMjhjYzVkNWRkODU1OWIzMDMxYTM3ZjE5NjhmYmFhNDQzMmI2ZWU0Yzg3ZWE2YTdkMmE2NWM2In0K', 'eyJibGFrZTNfbXVsdGkiOiJhNDRiZjJkMzVkZDI3OTZlZTI1NmY0MzVkODFhNTdhOGM0MjZhMzM5ZDc3NTVkMmNiMjdmMzU4ZjM0NTM4OWM2IiwiYmxha2UzX3NpbmdsZSI6ImE0NGJmMmQzNWRkMjc5NmVlMjU2ZjQzNWQ4MWE1N2E4YzQyNmEzMzlkNzc1NWQyY2IyN2YzNThmMzQ1Mzg5YzYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiOGU5OTMzMzEyZjg4NDY4MDg0ZmRiZWNjNDYyMTMxZTgiLCJzaGExIjoiNmI0MmZjZDFmMmQyNzUwYWNkY2JkMTUzMmQ4NjQ5YTM1YWI2NDYzNCIsInNoYTIyNCI6ImQ2Y2E2OTUxNzIzZjdjZjg0NzBjZWRjMmVhNjA2ODNmMWU4NDMzM2Q2NDM2MGIzOWIyMjZlZmQzIiwic2hhMjU2IjoiMDAxNGY5Yzg0YjcwMTFhMGJkNzliNzU0NGVjNzg4NDQzNWQ4ZGY0NmRjMDBiNDk0ZmFkYzA4NWQzNDM1NjI4MyIsInNoYTM4NCI6IjMxODg2OTYxODc4NWY3MWJlM2RlZjkyZDgyNzY2NjBhZGE0MGViYTdkMDk1M2Y0YTc5ODdlMThhNzFlNjBlY2EwY2YyM2YwMjVhMmQ4ZjUyMmNkZGY3MTcxODFhMTQxNSIsInNoYTUxMiI6IjdmZGQxN2NmOWU3ZTBhZDcwMzJjMDg1MTkyYWMxZmQ0ZmFhZjZkNWNlYzAzOTE5ZDk0MmZiZTIyNWNhNmIwZTg0NmQ4ZGI0ZjllYTQ5MjJlMTdhNTg4MTY4YzExMTM1NWZiZDQ1NTlmMmU5NDcwNjAwZWE1MzBhMDdiMzY0YWQwIiwiYmxha2UyYiI6IjI0ZjExZWI5M2VlN2YxOTI5NWZiZGU5MTczMmE0NGJkZGYxOWE1ZTQ4MWNmOWFhMjQ2M2UzNDllYjg0Mzc4ZDBkODFjNzY0YWQ1NTk1YjkxZjQzYzgxODcxNTRlYWU5NTZkY2ZjZTlkMWU2MTZjNTFkZThhZDZjZTBhODcyY2Q0IiwiYmxha2UycyI6IjVkZTUwZDUwMGYwYTBmOGRlMTEwOGE2ZmFkZGM4ODNlMTA3NmQ3MThiNmQxN2E4ZDVkMjgzZDdiNGYzZDU2OGEiLCJzaGEzXzIyNCI6IjFhNTA0OGNlYWZiYjg2ZDc4ZmNiNTI0ZTViYTc4NWQ2ZmY5NzY1ZTNlMzdhZWRjZmYxZGVjNGJhIiwic2hhM18yNTYiOiI0YjA0YjE1NTRmMzRkYTlmMjBmZDczM2IzNDg4NjE0ZWNhM2IwOWU1OTJjOGJlMmM0NjA1NjYyMWU0MjJmZDllIiwic2hhM18zODQiOiI1NjMwYjM2OGQ4MGM1YmM5MTgzM2VmNWM2YWUzOTJhNDE4NTNjYmM2MWJiNTI4ZDE4YWM1OWFjZGZiZWU1YThkMWMyZDE4MTM1ZGI2ZWQ2OTJlODFkZThmYTM3MzkxN2MiLCJzaGEzXzUxMiI6IjA2ODg4MGE1MmNiNDkzODYwZDhjOTVhOTFhZGFmZTYwZGYxODc2ZDhjYjFhNmI3NTU2ZjJjM2Y1NjFmMGYwZjMyZjZhYTA1YmVmN2FhYjQ5OWEwNTM0Zjk0Njc4MDEzODlmNDc0ODFiNzcxMjdjMDFiOGFhOTY4NGJhZGUzYmY2Iiwic2hha2VfMTI4IjoiODlmYTdjNDcwNGI4NGZkMWQ1M2E0MTBlN2ZjMzU3NWRhNmUxMGU1YzkzMjM1NWYyZWEyMWM4NDVhZDBlM2UxOCIsInNoYWtlXzI1NiI6IjE4NGNlMWY2NjdmYmIyODA5NWJhZmVkZTQzNTUzZjhkYzBhNGY1MDQwYWJlMjcxMzkzMzcwNDEyZWFiZTg0ZGJhNjI0Y2ZiZWE4YzUxZDU2YzkwMTM2Mjg2ODgyZmQ0Y2E3MzA3NzZjNWUzODFlYzI5MWYxYTczOTE1MDkyMTFmIn0K', - 'eyJibGFrZTNfbXVsdGkiOiJlNjkwZmQ5MDZhYWZkNDdhMDFhODM1ZjAzODY0YWZmYzFiMzE3ZTI1MzI3ZTVjY2NhYTgwYzFlZTBlZDEzNWI1IiwiYmxha2UzX3NpbmdsZSI6ImU2OTBmZDkwNmFhZmQ0N2EwMWE4MzVmMDM4NjRhZmZjMWIzMTdlMjUzMjdlNWNjY2FhODBjMWVlMGVkMTM1YjUiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiYjI0YTlkYzQ3OWJhOTRmYzUwNWNmYTJjY2U4YzgyYWIiLCJzaGExIjoiMTg5YjhhYzFmZTNjNjIzMjZiMWQxYjEwZjgwNjY3N2EyZjM5NTc1MyIsInNoYTIyNCI6IjQ2ZDlmZDFhZmFlOGRiNDc0YTAzMGQ2MDFmNjllYTZlNmJlMjZlMmZkN2VlM2EwZmQyZjEzNTlhIiwic2hhMjU2IjoiOTBmZmY2NzQ0ZWZkMWE1MDA1ZTU4MGZiYjNhYzkzMzExY2QyOWQ3ZGQxYjlhYjgyYjg5MDU5NDAzNmY0ZTM2NCIsInNoYTM4NCI6ImU2ZTlhNDc1M2MzOTJhYjU0ZGRhZDUxOWJhNDUwOTJjZmMwMWI0M2VmZjI0YTk3MTFlNjk5N2E0NmQzMWMwNDNmYjYxYmZkYzQxN2NmZWVkY2M3Njc1ODk4NWNjYWJiZCIsInNoYTUxMiI6IjdiZTNiYTQ4MmYzODdiYmI4ZTVmZTU2YTQ3YzcyOTExZTI2MTg1MDExYTk4NjFjMGU3NjM0YjVkYTMyYTA2NWUwMzgzNDY2YjI1NjZjMjk2MjI1YzJhYmVkOGJhOGY0N2YxYTI2NWY4Zjg3YTU1NjkzNWJmYmQ5N2Y5NDE1YTkwIiwiYmxha2UyYiI6ImFjODI2NTE5YjNhMTk4Y2MwZTU5MDBlMzFhNTg0NjA2ZGEyY2I3NjgwYTJkZjAxOWM2ZjhmZGRjYWI4YjIzZmFhMWFiMjQ4YWY0ZTcyZjUxYzM3YjU4MWEzMzIzNmI4MWM3MWIzYzE5OWYzYTk1MWNmZGYxMTJlMjY1NzkwN2MzIiwiYmxha2UycyI6IjhjOTNjNGM0Mzk1MGE0MDFhMDI3NWFjNzM3NGFjMjY1ZWQ2OWVjOTEyZWY5ODI2Mzk1ODI3MWQ5NDFjN2JmZTIiLCJzaGEzXzIyNCI6ImVhNzQwZDY4NDlkMGU3ZjExYjkxMWI1OGI5NjU4ZGI5NGUyZjg5MmMxNjEzZDU4ZjI1MDVlMzQ5Iiwic2hhM18yNTYiOiJjNGZkNTZiNmFlYmYzNWQwY2NhOTBhNTY1YzNmMjNhODQxYjc2NzA1OWE2ZjBkZjhlOTk5ZTc1MGM5NDc5MmJmIiwic2hhM18zODQiOiIzNDY3NWY5MDRlNmE4YjllOGJjNjUzNDc1ZWFhYjFlYTRkMmMxNzNlMDg5YzhjYjZmZmEyNmMwMDQ5YzIxNTQ5YTZmMTMxZWZmZjkyOWM0ZGMxYTNkYTY1OWEyNGFmZGYiLCJzaGEzXzUxMiI6Ijc0MjBjYmU4Y2EyOWIzNGQ4YzdjNjcyMmEwYmQxYTNhZGRlOWMyNzFmNjY4Yzc3Mzg0MTU0OGVlNWFhNWNjODNjNjBkZDNlZDQ3MzM1YWI2NzRmYTU4YjI3NDQxNTdmODI5OGU3ZjQ3Mjk1N2RkYzQ0Zjc5MWUyZjM4ZDQzYWEzIiwic2hha2VfMTI4IjoiYWM0NTdiZWQ4OWZmMzMyOGEwODI4NzE0NjFkNDQ4MGJjOTMzMGRhZGRiZGQxNDFlNGVmYWFlNjQ0MDNiZDMxZSIsInNoYWtlXzI1NiI6IjdmMmI2ZTNiNmMxMzZkNzQ5ZjcwNzE0NzQ2ZDNlOWE1YWZmMjM1ZGZlM2QxNGQxNmQ1ZjVjYWQyMjY3OTQ4YjkxOTIxNmVjZGQzODZjYzQyNDk3NmU3MDBkYTA0YzJiNjUzNjFiM2I5NDg0YWQ1MDMwMzUwMjgwNDg3NmY4Y2ZlIn0K', - 'eyJibGFrZTNfbXVsdGkiOiIwNWI1MjNlN2Y2NTJhM2YxNGQ4YmQwMGRhMGY5NDdjMzM4NzllN2VhN2Y1OGQyYTA3YWJkNzJmMWIwZGZiZjFlIiwiYmxha2UzX3NpbmdsZSI6IjA1YjUyM2U3ZjY1MmEzZjE0ZDhiZDAwZGEwZjk0N2MzMzg3OWU3ZWE3ZjU4ZDJhMDdhYmQ3MmYxYjBkZmJmMWUiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMzhjMDllZWFkMGVhNjcyZDJlYzUzMTM4NmJkYmZlMTkiLCJzaGExIjoiYmMyYjc1MjdhODJlMGUwYjUwYmRmYjBhNjA1YTUxZGE4ZjAzMzIwYSIsInNoYTIyNCI6IjQ1NTAzYTgwMzY1ZDdmYTJhOTM2ZWEyY2JhMWRjNTIxZGM0MTc0ZDMxY2M2NGZhOTUyMmExM2ZiIiwic2hhMjU2IjoiODEyMmQ5MzA3ZDc0NDk3MmIyOWRkMjc5Y2FjODA5MzI5ZWJlYzU5MzU4YjMzNWMwNGFjZWY4ZjJlNjZkZTIyMiIsInNoYTM4NCI6IjhlYzJhNjA0NjExYmQxYTIxYWRjYTdhMGNlZmY3YmZmMmMzNWI3NzYyMjUwMWM0ZWJmYzFmZWY1ZTcwYTRlNzcxMmVjZWFkNGM0OGJkNjM2NzMzMWJiMWNkMGM4ZTdmNiIsInNoYTUxMiI6IjQ4NDE5YTM3NjBlOTcwMjEzZjYzM2VhNGE2MzQyYmE2MzhiMzMzMGM5NmFlY2Y4YTg4MmI4YTg2ODRiYTMzMWQyNDkyN2UzOTE2MjY3YThhODY2YmJmYWRlYTQ0Mzg0Njg2NDcxYjM1NjI4M2ZlODUyYTk5MDc0OWQyYTYyZWM4IiwiYmxha2UyYiI6ImM5MTk3NTQ4NDRjOWRhYTMxYzAxMmYxMzdhMjk5M2Y1MjM3YTIyMjMzZmFjOTRkMWUwNzhmYjMxNzVhNzZmNGViNTJjNmZhYzY2MjlhYjZhNDJjMjNhZWM0Y2U2Y2YxZWQyODFlYzg0MmZlODFjMmJkZGQyOGMyY2RkNjNlN2Q2IiwiYmxha2UycyI6IjE5MDE5ODZjN2I4OTZiOGEzOWJjOWY4MWNlMThmZmJlMGZkNzIxOThkY2JiZTc4MmRmY2JlZjMyNmI1OTU3YzciLCJzaGEzXzIyNCI6ImNkNjk0ZDdjODkzN2ZjMTExYzc1MjMyNWNhOTliMGMxYjc2YjdlOWJhMWZhZjRiMzJmNDlhOWEwIiwic2hhM18yNTYiOiJkYmVmNjc4YWM2N2E0MDJkYTVhMzlhZjc3NjQ0MDI5ZmY3ZjgxNzAyNjhjMjVkOWU0ZGU0YTRkMzIyYTkwMmU0Iiwic2hhM18zODQiOiI1OGQwNzFjMGZiMDY3ZmNjMDk4NTk1ZjdlYzE2MmEwYjcwYTIyYjg4Mjk0ZjJhYzY4NDQxYjg3YTRiNGQxYTVlM2MzYWRlMGFkN2U4M2M4ZjIxZGU0YTkxMDZhMTBlZWQiLCJzaGEzXzUxMiI6ImFkYTFiZWI0MDFhNjg2MDI2MDFhYWY0OTA3NjZhZjE1MmU0NjVlOGRmMTVhN2E5MzU1NWMzODE4Y2I5ZTAyYmEyOTY0ODZhMGY2MThiZTljN2IyNjdmYjBhYjUxYjEwZDIxYjRlNzIxYmIwN2EwNzg5NzNkZThhMmM5ZjM2MDQ4Iiwic2hha2VfMTI4IjoiZWE2YzljZGMyMWUxZjVmMTIwYTJjNzI0YzVkOTJiZmUyZjUzOWFhZDVmNDJhNjQ4MWYwMzFiMWY5ZTc1NDVmZiIsInNoYWtlXzI1NiI6ImQ1ZjMzNzVmYzY2YWU5ZWIzZDVkYTg2NzhlYTQ5Y2YzZjAyNWNhMDA0MzQyOWMzNzcxZWRmZWVhMDMwMmEzNjFmMGY4Y2FjYzYwYjg5YmUwODk0MWQ3MGY2MmVkODMxZjA3YzAwMjZjNmY0NTc2YTMwMzEwZDhkZTYwM2U4MjJmIn0K', - 'eyJibGFrZTNfbXVsdGkiOiJlMTE3ODMxOWMxMjllMGI1YTBhZTY3MmVkOTYxZjRjZTAyNjRhZjM3YmE3Y2JkNjliMWU1NmI4MmQ0ZjQzYzBhIiwiYmxha2UzX3NpbmdsZSI6ImUxMTc4MzE5YzEyOWUwYjVhMGFlNjcyZWQ5NjFmNGNlMDI2NGFmMzdiYTdjYmQ2OWIxZTU2YjgyZDRmNDNjMGEiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiYTc4NDRmMDEzNGFmOWRhMWE4MTgzODRjYmEyYzRlNjUiLCJzaGExIjoiMTkyMDgyMDMwOWE5ZDRkM2RlY2M1ZGVjNDM5OWQ5YjY0MzBmOTg5YyIsInNoYTIyNCI6ImExODA2MTY5M2MzY2ViZDVkM2JjMDY4YTViNTQzYTkwMmIzNDI1OWVhOTdhNmZhMmY3NjQxM2FiIiwic2hhMjU2IjoiY2QwNzE3MjJmMmZkNjEyNzQxNGFhYTdkNGI0MGJiMGNiNTMwNWQ4YWQ1NDgwNzZiZTQxZDhmMzgwMDU1OTM5ZCIsInNoYTM4NCI6IjZkYzQ5MTk5OWJhZTcxMDg1ZWJiYjg4ZWEyNDUyYmVmNGFkMGYyMDU4OGE2ZmZiNjQyMDk3ODQxMTdhOWM3MmZhY2MyZTQ1OWI4ODkxNDRjMjJlNWY0ZDc0NzE2N2QzNiIsInNoYTUxMiI6ImNjZDMyZTEyZWU2YzRhMmFlMWJmNDRlYjY5ODhjMzA2YTRmZTMxMzk4Y2ZmZmNiODM1ZWEwNzA5YTkxZWUwMTc1NzFlNjA2YWY0ZTZjZmViMjFjMGY0Njk3ZGM3OTY1OTA1MzBhMzU2NDFjYzhkZTdjNzU3NTQ5ZDdlNzQ2ZGYxIiwiYmxha2UyYiI6ImU0ZWI3NjA0MGM5MzA5MzhlMzQ2NWU1ZGEyZTllZTQyYTk4NGY3NGM2OGE1M2Y5NGU1MGZjOGJmMjMxOTNkMGNmNWUzZjBmOTJjMzNkNTE5MDNmNGExNjhhNjE1ZGYwOWI4NjYzMTRlZDQ1YzA4NDNkNzc1ZjhlNDU0MzRjNDY5IiwiYmxha2UycyI6IjJjZGJlMGNjNTI2OWNhMzI3NmNmZjJkZjJmOTViOGYwNDI1Mjg3ZjViZWZlNDIwYWUyN2RkODRjZWJhY2QwNDkiLCJzaGEzXzIyNCI6ImE3Y2U5OTZiN2Q0ZjlmZmViYTMxM2EwMzBmMDNkNDZmOGUzZmE4OTRiZjYwZTE1ODczNDFjZWU1Iiwic2hhM18yNTYiOiI5NzNlZDk4NDYwZjk4YjM0MWY2MThiNWNkOWZlM2U3ZDdlMDE4MjkwY2VjNTBiYWVjZWQzOGY1OWEwNGY5MDdhIiwic2hhM18zODQiOiIxNzA2NTI2YjJlYzJmNTA0MWI2NTQzN2I5NTQ5ZjNhMjEwNjQ0MzExNjhjY2U4ZDc0YWI3ZTVlMmU1MGEzYmI3NDQyY2M5NzhmOGU1N2MxN2Y5NTkwYjQ4YzhhYzY4MjQiLCJzaGEzXzUxMiI6IjA4ZmZiNTJhN2ZjNjkyMzIxOWQzOGUzMmQ5NzE3NTgyNjlkYzY1NjM2MTY4ZDc0YWZjYzBmYTk3OTZiYjNmMGU1YjFiMmE0OGE3ODZiZDViNGZmNDE2ZjRmYzQ5OTkxODczNDc2ODY1OTk0ZmJmMzJkYzRkYjNjNmVhYzQxYjRiIiwic2hha2VfMTI4IjoiYjA3MzM5MjUxNDU1YzBlYjFkZmMzNWVlN2I2MTQ0NjY0MDRmYWY3OTNkNjNlMjk5ZTVhY2JkMmRkYzk3YmM1OSIsInNoYWtlXzI1NiI6IjY5MmM5ODNhNGY3MjQzZDU4Y2Q0MTc1Y2I3NzkxYWFiMTI4YzE4ZTZmMzUwZDk3NzFlMGJhZWE4MmY2M2M2Y2VjYmZmNjUwZTUxZmIzZDFjNjNkNzU4Zjc4NDcxNjhlOGZlMDMzODVlMDMwNmFlZTQxMzllNjllY2IxMzg1YTYzIn0K', - 'eyJibGFrZTNfbXVsdGkiOiIzNWM5YTgyZjE2MWVjM2I2ZmY1NDY2MWJkZmFiMTNhY2MyMzMwYzNlNmM0MzBmYjJmYWIyODAwZDM1ZDEyZmI5IiwiYmxha2UzX3NpbmdsZSI6IjM1YzlhODJmMTYxZWMzYjZmZjU0NjYxYmRmYWIxM2FjYzIzMzBjM2U2YzQzMGZiMmZhYjI4MDBkMzVkMTJmYjkiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZjIyZjhmYTlhNjQwYzc5Y2YyMTc1MjcxY2Y0ZWY0YWUiLCJzaGExIjoiNjRmNDBjOTQ1YTRmMTFkYTY5NTFiMDgyMGUwZWY1Yzg5ZmQ1OTUxMiIsInNoYTIyNCI6ImQ5MzM4Zjc4ZjFiOTA5NmEyYjUwNDRlZjc4Y2ZkZGE4YWQ2ZDE4NGIxZjU5MjgxYTFlMjQ1YmU4Iiwic2hhMjU2IjoiZjQ5YTFjNGRlMjVjNGZlNzg4MWM1NWU2YWQ2ZmQ0ZDliOGI5OGVhZjNiMjg1MTRjZTBkOGJiMWRlMTg5NTJhZCIsInNoYTM4NCI6IjhmNGM1YWRjODM4MjkzNWE2NGRhYjdlNmQyYTAwOTg0NjQxNzVmNDU0YjE3YTk1OTJiYTU2NzM1NjY0OWQ4ODI4ZTIxNjkwYmY0OTIzNGVhZGYyZDJhNzY1Yzc5N2E4OCIsInNoYTUxMiI6IjFlOTMxOTU0OWQ0ZjlkN2FmYjkwNjBlYmRjMTBlN2EyNDdiNjkyNTIwZGI1OWIxNTc4OGYxNzI5NDk0NjM0YTkxMDFjNmFkOGViNjdjMzVmNDQ0YjIzMmI0Njg0ZTM4OWVhNTlkYzBhODZlODM1NmJiN2JiNTJjNzA5Nzg4ZmMwIiwiYmxha2UyYiI6IjBlNGNmOWViM2ZkNTI4OTNiODVkZDc4N2NiOGUyZTNjZjEyYjdiYTE4MDcyZWQzOGYzM2ExYmUxMThkZjkxZTYzZjQ1NGQ5OWUyYzMxZjI5MjJiMDRmMmQyYTljYmY4NDkxNjI0ZmYzMjI5NmZiMTE5NjRmM2ExYTkzZGEzOWViIiwiYmxha2UycyI6ImQ3MjVjZWNjNTA2MmU2YTRmMTk0MDhlY2E4YjU4Yjc0MWVhNTQ1YzY3ZTUzM2M5YzAxMmYzZTBjYmNiNDhkYmEiLCJzaGEzXzIyNCI6ImVhN2I1MDI2NGE0MGZkYjFlZTZjZjhmNzg4MzlmNDVhOTNmNTFhNDFmMWJjNDI2MDU4NjM0NzhlIiwic2hhM18yNTYiOiIzN2U0Yjg2ZjQ3MDRmNmU3Y2UwNGZhYThhMThmOWE0MjQwODk5ZDUyMDNhNDc3OTA4Yzk4MGFmNmIxNWU1N2Q3Iiwic2hhM18zODQiOiI4YWVlYTRlNWUzOWNmNzYxMzk4NWI1YmUwZmYzOGViNmFjNDI1NjE1ZmM0NGZhZWY2NGQ4MGNhMjRmNGE4ZmU3NDA1ODdmMzA2NjM5NzhiNjkyMDA1N2UzMDhlN2QxMDciLCJzaGEzXzUxMiI6IjNhODExMzkyMDg0Y2Y1NTM1ODgyZDVmZDlmM2QzNjYzMDFlMzk4OGRiN2MyY2EzNmE5OTVjMmY2ZWNlMjNhMTQzOTEyOWNjMjljZWRkNDBlZjE4OWU4NWU5NDRlMTFiN2RmOWM0MDFhMzY5ODBkZDFkYTU4ZjZjNTYyNDg0YjZlIiwic2hha2VfMTI4IjoiZWRkZDFhMjIyMDY0ZTM0MDY2MGU5NWI1ZjFlY2MwM2IzZGEwMzY5MjNjNzYxMzUxYTM2NzVjNTZlNzNhOWIyNiIsInNoYWtlXzI1NiI6IjMyNzI4MDZjZTRlNjg1ZGY3NDUzZmM3MGNjNjdlYThhOTcyZmM3N2UxNTI1ZDU3MTBmNTNhOGFkZGExMDI0YTA2NjUyOGUyMDFiOWFiNGVkMWUzZTdhOTQyNmNiNWEzMzhmZTFmNTZlOTA1NjYwZThiMmNkN2QwODE5Njc0YzFiIn0K', - 'eyJibGFrZTNfbXVsdGkiOiJjYWQ4NWYxYjU1NDhlZWMwMDYxNmEwMzg1YTdlNDc3YzBjNmQ5YzYwMmQ5NzU3OWRiNmMzOTgzOTYwMDdjMTRjIiwiYmxha2UzX3NpbmdsZSI6ImNhZDg1ZjFiNTU0OGVlYzAwNjE2YTAzODVhN2U0NzdjMGM2ZDljNjAyZDk3NTc5ZGI2YzM5ODM5NjAwN2MxNGMiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZGI1NWFkNWFkM2YxZDk5NDBkZWJkNGY4ODcyMTc1ODMiLCJzaGExIjoiMDhjZmI3ODEwZDY5Y2I3MjllNDBlYjVhODQ0MGE3N2M1Zjc1MzIwYSIsInNoYTIyNCI6ImU1ZDg2NTU1OThiMGRkMzViMjg0NTc4MjAzODk1NzU3ZmE0NWM2NjI2YzNjOGY1Mzk0NTYzZDA1Iiwic2hhMjU2IjoiNGY4OGM5MDc4YmIyMjM4Y2RkMGQ4ODY0NjcxZGQzM2UzZjQyZTA5MWU0MWYwODkwM2YzYzE1ZTRhNTRhOWIzOSIsInNoYTM4NCI6IjMyNjFkNTY5Zjk4MjhlMmY0OGMyOTE4YjczYzMyMTljNmI3MmUxMDRjMWQ1ZTFhZTVlNTkwNjcxOTQwOWZmODZkYTNjN2EwZWU3MDFkZmIxZWNmZGNkZGI4ZTVjMjgzMCIsInNoYTUxMiI6ImZiNzVhM2JhNjQ4MDJkMTBkZjFiYzI5ZWJmYjVkOTVmODUxOGU0ZTc1MTFkMDRmYmM5MWJkMzIxOWJlZWNhYjZlYzFjN2Q1ODQwM2M5OTJkZDhjMGE3MTU4YmRjMmE5MzdlM2VhOTJkYzFlMWM0OWJmNWZjMWFhOWM2YmYyMDcxIiwiYmxha2UyYiI6ImQ0MjZmNTQzNGE0YTE0ZDFkNDE4NTMwY2MzNDEwYjE0ZWI1ZDJhZDNlNWEzZjM2ZDcyNDQ2MjYyY2EyMGEzODc5ZWJkNjA3ZTNmYWE1OTQ4YzY4N2YxZjBjNGE5ZTBmODRiZjA4NTZjYTFlMzhjNjYwYzEyYWNkMDJmMjFmNGZlIiwiYmxha2UycyI6IjczMzlhZjA5YjFiOTFmMTBhMmQxYWM3MzJjNDQ3MjBiOGViNmZiOWY4YzJkY2Q3MjBiMGNhZTJlMDM0NTdkOWMiLCJzaGEzXzIyNCI6IjIzM2NhMTAwMjc3NjFiOTQ0OGQxMGMyNDk1ZThhNjA1M2I4MTQ4NTljMDhiNmUxODNlYTBmZDY2Iiwic2hhM18yNTYiOiI3MDNkODczYTJjNTg4ZTI2MDRmZDA2NTlhNTVlYmYxNjAwMmMzOWExMzMwYTE4NjEyYTRhNTNhMDY2ODJiNGY4Iiwic2hhM18zODQiOiJlZjY1MjY0N2Y0ODVhMTY3MGQwYjYzOWM1YWRmNDVjNTU0ZjVjYjg2OWJkNjViNjgxMzQxN2FjMmVjN2JjMWFiNjY3OWM1NzMzNjc5NDVhMzEzMjQ3NzFiODg1N2ZkYjIiLCJzaGEzXzUxMiI6IjYyNzU4M2MyYWJhMTU5OTljMGIwNmJlZmI4MWVlMTM1NTg0NmE4OGFjZGJhM2M0ZTkzOWQ1ZWYzYmFjN2IxNDI5ZWU0MzUwNjkwOThmM2Q2NjYyZWM2ZWU3ZmU4ZjZjZmZiMWEzOWVjMTdhZWFjYjI0MzUwZTI2ZTljNzBkMTZiIiwic2hha2VfMTI4IjoiZTUxNWY4Y2ViOGVmZTA4MjJmNjE0ZGYzMTFiNzEwZGNmZTk0MGM1NDhlOWI3NWJlNWQ1ZDNjMGFkMTgwMjYxZSIsInNoYWtlXzI1NiI6IjgyOWZkYjdhYmQ0YTRhYmMyNzFhMzkyYWM1ZmY1ODVhNGNkZjFiMjYxNzhjMTI0ODI1NDJhODkzNmVmNTMxY2QzZjc4YmQwMTBkZjA5MmNlNzRmZmVhZTJlNTFkNmIzZDNkNmY5NzJmZTJmZTQxNmExMTYzZmVjMzg1MWIwYmVjIn0K', - 'eyJibGFrZTNfbXVsdGkiOiJmZDVkMjdjYjJlMjczMzg5ZWRiOTc2MjAxOTE3NjIyNDdlOTE2MDdmZWRkNjYzYzBiNmE1ZmE1ZjgzYWE2ZDk3IiwiYmxha2UzX3NpbmdsZSI6ImZkNWQyN2NiMmUyNzMzODllZGI5NzYyMDE5MTc2MjI0N2U5MTYwN2ZlZGQ2NjNjMGI2YTVmYTVmODNhYTZkOTciLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiMzk1YmJjYmJhZDdkOGI0NTk0OWU0Zjg5NTE3ZGYwMjMiLCJzaGExIjoiMzExNjc3ZGJlODkxNGM2NmJiZjZjZTVhNDczMWY0OWE1NjgwNDgxZSIsInNoYTIyNCI6IjAwZGIzYWMwZTE2ZDU4Nzg1ODI4ZjFiZjk1MmExNWFlOWVlYmEzNWFlNTEzOGFlZGM4OTlkM2NjIiwic2hhMjU2IjoiYjg0NjIxOGE5ZmNkMzAzZTdhYjQ1NzY5NDM1MWU5MzUyOTAzYzJmOWFiNDliYzRlNzljZjkzZDljZDQ0ZTg0NCIsInNoYTM4NCI6Ijk0MjUyN2M3MzliMjQ4NjMyOTdjMTA4ZmU0YTE3YTdlNTliNThiYzM5ZWU1YTE2MDYwYjBhZGEzMDkxYmFhOGJjZTI0ZmQ2YjliMDAzYjlkNzg5NWUyNjAyNzg1OWFkMiIsInNoYTUxMiI6ImMwYWE3YmM4NDRhMjc4OGM0NGI1ZmNkNGMzZWJmZTNmNDM2YmRjZmVmNGM5ZDA4ZTBkOTJkYjc4ODg4M2EzNjBkYmVhNTNjY2ViMGI1ODE5YTA0MGIxYTZiMjIwY2VmYWYzNGIxMTNmOTM0NDBkZDA3MGE1NDg5M2Q2NTg3YThkIiwiYmxha2UyYiI6IjBiMWJiMmE5NDZiNmZhZDIxM2VkYjU0ZmE5NDJlYzkyNjA3MTRmZTc0ZGEzZjIzOTc4MzA5MGYzNjY2NDUyMTJjYzliNzY5MzliMjVhOWU2OWY3NmIwYjY3ZGM3YmI3ZTNkMDU1OTk1NDliOTRkY2M1ZTk5MDJiNzQzMjkyMDNmIiwiYmxha2UycyI6IjEzMDg4MDc3ZDc0NzU5YmYwOWNjMjkwNjY2ODRmYmYzNzAyZmJmNzAwMTk3OGQ2MzUwYTI4YTVmM2RiZjc0ZmUiLCJzaGEzXzIyNCI6ImQxYWU2MGZhOTY4MTlkODkzNTk1MmU5ODQ0YjdhMTVhMmU3Y2ZkZDY1MGYwYjFmMjlhYzAxMjI3Iiwic2hhM18yNTYiOiJmYzQ1N2U2NTY1NDc4Yjc2YzhmNGMyMDM1ZTk0M2FkZmMyZjg3NTUzYmNhZmIwNzRkM2UwNmMxNjIyYjNmMTg2Iiwic2hhM18zODQiOiI5ZDg4MjIzNjdkMTViZTRlZTYzODVjMjc1YWEyZDFjMDM3ZTcyYTc0OTBmZWIwMGMzNWViY2RkMDZmNDI0ZDY1NjdjZWUwNDQxMzJhNDdlMWYxNGFmY2U0MGY4MzA5YWMiLCJzaGEzXzUxMiI6Ijc4NTMxZmU1ZjljNDIwZDdmODk1NTNjOGI0YzdmY2Q4MTVmNWMxNzdjZDcxOGVjZjg2MDQxN2FjYWRkZTJiNjFlOTZkZjg2YzYzZTEyYzcyZWFkMzFlMGI5OGVlYzQ3NTgwNjA3ODFkZTFkOWE5N2RmMGFiNjY3NmExNTA2YjBkIiwic2hha2VfMTI4IjoiMmU1ZTY5ZGE3ZDMyNDA5OTU3OTFlMmI3MDc4YjA0YzcyNzBkMmEwMDk4MjNkYzY0OTdkMDg3NzE3OGFjMThmZCIsInNoYWtlXzI1NiI6ImUwZDUyZWU3ZjFmYTg1MmI0MjVjMzk2YTljZTUxODkwYThjOGUxOGE0ZGZkNzU0NGQ1Mzc2ZjdhZTg3ZjViOWRkYTU4ODRiMWNmMWJjZWJjODRjMmFjZDE2ODcxMDUyNDAyNDIwOTAzMjVlYzg1MTM5YWVhNmJiNzQxODIzNGZmIn0K', - 'eyJibGFrZTNfbXVsdGkiOiJmMTUxOTEwODEzYjcyOGZhNjMyMzhjOWYzYTYyZGViOTA4MTU2YWEyYTcyNjUwYjk3OWY1MjU2ZWUwODliNzNmIiwiYmxha2UzX3NpbmdsZSI6ImYxNTE5MTA4MTNiNzI4ZmE2MzIzOGM5ZjNhNjJkZWI5MDgxNTZhYTJhNzI2NTBiOTc5ZjUyNTZlZTA4OWI3M2YiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNDIwNzkxMTdhOWE4YzMzM2U4NzY1NmZhZDE1ODQ2OGYiLCJzaGExIjoiZTk5ZWJlNjExNGY4NmM5MjMwN2M0ZWY1ZTYzMTU3ODI0MjhmZmJiOSIsInNoYTIyNCI6ImIxMzI0NDY5NmM3ZGNmYjFkNjFjNTdiZjA3NjVkYzBkM2YxMGE3ZTMwNjNkMTk3NTc1MmQ5MTdmIiwic2hhMjU2IjoiODgzZjU0MGJiNzc2MTQxZmEyMTU5ZDA1YjgxOTg3NThjMzA2YmYyNTk0Mjg5MTJkOTMyYjg0YmUwNjYwOGVmYSIsInNoYTM4NCI6ImRlNjhmNjBmMTUwNjljZGFkNzg2OTE4NmU4Y2IzMGFjMmExNjkxMzk3Y2MzNmI0ODMyNGNkNjY4M2QyY2Y4M2FiNjZlZGQxMDA3ZmM2NDk3YjkzY2ZmNDdiMWZjMGNlZiIsInNoYTUxMiI6IjRmODA0OWZjNWNlNmVhZTExNWViNmQxOTI3ODQ4MjcyNWFjMWJlOWFiYzNhYTBiYzc2N2JlNDg3NzZiODU0MTdlMTQxOTQxOTYyYWRkY2JlMzkzZDI4NzkxZTQ2NTU4MmVkZjIzOTgwYzEyOWIyYjkyYTllZmQzNTc0YjNjY2IzIiwiYmxha2UyYiI6IjI2ZGNlNjFlMDA0Y2Y2MTQzZDFlZDYwMjI0ODNhNTNkODMxZjFlNjFlZGEwNGMzNjk5N2M1MzI2Y2E2ZGY4ODlhYzVmYzM2YTYzMWViYWQ2NzVmMTBkMmYyZGRkZDcxOGFlZDQ1OTc4ODlhMDNlODQ0MGU3ZmMxODliZTRkZWZkIiwiYmxha2UycyI6IjE5MTE4MjFmZjQxOTQ3ZGU4M2UxN2Q4MzliMzI3NmUwNjg5Y2U3Y2Y1NGIwNzAwNzQwYWNhOGJkYzQ4NjdlNmUiLCJzaGEzXzIyNCI6Ijg1ZTVhNDg0MmY0M2FkMjg1MjY2NTMyNzQ2NWEwNjNhMGU5NDAwNWJlOTQ3MTdhMzY5NzY2ODk4Iiwic2hhM18yNTYiOiJlMjk5NzQ0NWZmNjg2ZTRlODdiYWVmYTcwOTEzNDQ0MGNkYjlhNjAzYTcxNGQwNzEzNjYzNDkxYTllZmRmZDFlIiwic2hhM18zODQiOiIyNzY0MjJiZmVhYWM4ZjM4NDBjMWUwNGY3ODQ2NTkwOWM1ZDhkYjRlYTU3ZWU1OTdjYTJmMWFlMDhhNzhkOGI0NWI3MTJiZmY3MTUwODAxM2NmMTY4MGRlNzdhNGM4OTUiLCJzaGEzXzUxMiI6IjYyZWQxMGFjMWQ1YmJjMDIzNWRjNjRhNGI3NjI0OWEzNzNkOTVhYTM1YTZjMzI1ZDZiNzVkM2EwM2Q3MzNkMjYyYmJhZDI3Zjg0NjcxYWFjYTgyYmQ0YjlhNWQwMGU4M2M5YzlmYzA3ZGNmMzA4YTg4ZTUyNTU3ZDI3NzFhYWZjIiwic2hha2VfMTI4IjoiNDQ5MmIwOWY3OTQ0NGEyOGQyYTdkZmRiZTc1YTc2MTMwODVjYTJhZGEwN2UwOTZiNjUwMjIwMzg1MzBlZDI1MSIsInNoYWtlXzI1NiI6IjFlMTI3MTE3ZDk3YTIwY2E5Y2QzMzU3YzNjMmQxOTFiOWEzMWRiNzNlZjM2ZjA4MmFjZGI2ZThiOWU1NDZiNGMzZWI3Mjg2OThjY2QxMmM4YjY2M2YxMDMzZGJhYzMxZjI0OThlZGUyM2JlZjY4ZTlmMzJjNmUzZDNhNzE1ZjkwIn0K', - 'eyJibGFrZTNfbXVsdGkiOiJhYjA2YjNmMDliNTExOTAzMTMzMzY5NDE2MTc4ZDk2ZjlkYTc3ZGEwOTgyNDJmN2VlMTVjNTNhNTRkMDZhNWVmIiwiYmxha2UzX3NpbmdsZSI6ImFiMDZiM2YwOWI1MTE5MDMxMzMzNjk0MTYxNzhkOTZmOWRhNzdkYTA5ODI0MmY3ZWUxNWM1M2E1NGQwNmE1ZWYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZWY0MjcxYjU3NTQwMjU4NGQ2OTI5ZWJkMGI3Nzk5NzYiLCJzaGExIjoiMzgzNzliYWQzZjZiZjc4MmM4OTgzOGY3YWVkMzRkNDNkMzNlYWM2MSIsInNoYTIyNCI6ImQ5ZDNiMjJkYmZlY2M1NTdlODAzNjg5M2M3ZWE0N2I0NTQzYzM2NzZhMDk4NzMxMzRhNjQ0OWEwIiwic2hhMjU2IjoiMjYxZGI3NmJlMGYxMzdlZWJkYmI5OGRlYWM0ZjcyMDdiOGUxMjdiY2MyZmMwODI5OGVjZDczYjQ3MjYxNjQ1NiIsInNoYTM4NCI6IjMzMjkwYWQxYjlhMmRkYmU0ODY3MWZiMTIxNDdiZWJhNjI4MjA1MDcwY2VkNjNiZTFmNGU5YWRhMjgwYWU2ZjZjNDkzYTY2MDllMGQ2YTIzMWU2ODU5ZmIyNGZhM2FjMCIsInNoYTUxMiI6IjAzMDZhMWI1NmNiYTdjNjJiNTNmNTk4MTAwMTQ3MDQ5ODBhNGRmZTdjZjQ5NTU4ZmMyMmQxZDczZDc5NzJmZTllODk2ZWRjMmEyYTQxYWVjNjRjZjkwZGUwYjI1NGM0MDBlZTU1YzcwZjk3OGVlMzk5NmM2YzhkNTBjYTI4YTdiIiwiYmxha2UyYiI6IjY1MDZhMDg1YWQ5MGZkZjk2NGJmMGE5NTFkZmVkMTllZTc0NGVjY2EyODQzZjQzYTI5NmFjZDM0M2RiODhhMDNlNTlkNmFmMGM1YWJkNTEzMzc4MTQ5Yjg3OTExMTVmODRmMDIyZWM1M2JmNGFjNDZhZDczNWIwMmJlYTM0MDk5IiwiYmxha2UycyI6IjdlZDQ3ZWQxOTg3MTk0YWFmNGIwMjQ3MWFkNTMyMmY3NTE3ZjI0OTcwMDc2Y2NmNDkzMWI0MzYxMDU1NzBlNDAiLCJzaGEzXzIyNCI6Ijk2MGM4MDExOTlhMGUzYWExNjdiNmU2MWVkMzE2ZDUzMDM2Yjk4M2UyOThkNWI5MjZmMDc3NDlhIiwic2hhM18yNTYiOiIzYzdmYWE1ZDE3Zjk2MGYxOTI2ZjNlNGIyZjc1ZjdiOWIyZDQ4NGFhNmEwM2ViOWNlMTI4NmM2OTE2YWEyM2RlIiwic2hhM18zODQiOiI5Y2Y0NDA1NWFjYzFlYjZmMDY1YjRjODcxYTYzNTM1MGE1ZjY0ODQwM2YwYTU0MWEzYzZhNjI3N2ViZjZmYTNjYmM1YmJiNjQwMDE4OGFlMWIxMTI2OGZmMDJiMzYzZDUiLCJzaGEzXzUxMiI6ImEyZDk3ZDRlYjYxM2UwZDViYTc2OTk2MzE2MzcxOGEwNDIxZDkxNTNiNjllYjM5MDRmZjI4ODRhZDdjNGJiYmIwNGY2Nzc1OTA1YmQxNGI2NTJmZTQ1Njg0YmI5MTQ3ZjBkYWViZjAxZjIzY2MzZDhkMjIzMTE0MGUzNjI4NTE5Iiwic2hha2VfMTI4IjoiNjkwMWMwYjg1MTg5ZTkyNTJiODI3MTc5NjE2MjRlMTM0MDQ1ZjlkMmI5MzM0MzVkM2Y0OThiZWIyN2Q3N2JiNSIsInNoYWtlXzI1NiI6ImIwMjA4ZTFkNDVjZWI0ODdiZDUwNzk3MWJiNWI3MjdjN2UyYmE3ZDliNWM2ZTEyYWE5YTNhOTY5YzcyNDRjODIwZDcyNDY1ODhlZWU3Yjk4ZWM1NzhjZWIxNjc3OTkxODljMWRkMmZkMmZmYWM4MWExZDAzZDFiNjMxOGRkMjBiIn0K', ] From f14f377ede5da9a22ba9e440469799ff6ce9783c Mon Sep 17 00:00:00 2001 From: Brandon Rising Date: Fri, 14 Jun 2024 13:13:01 -0400 Subject: [PATCH 14/17] Update validator list --- invokeai/backend/model_hash/hash_validator.py | 1 + 1 file changed, 1 insertion(+) diff --git a/invokeai/backend/model_hash/hash_validator.py b/invokeai/backend/model_hash/hash_validator.py index 73b5feb654..b0d54ef7c6 100644 --- a/invokeai/backend/model_hash/hash_validator.py +++ b/invokeai/backend/model_hash/hash_validator.py @@ -16,4 +16,5 @@ hashes: list[str]=[ 'eyJibGFrZTNfbXVsdGkiOiI4ODlmYzIwMDA4NWY1NWY4YTA4MjhiODg3MDM0OTRhMGFmNWZkZGI5N2E2YmYwMDRjM2VkYTdiYzBkNDU0MjQzIiwiYmxha2UzX3NpbmdsZSI6Ijg4OWZjMjAwMDg1ZjU1ZjhhMDgyOGI4ODcwMzQ5NGEwYWY1ZmRkYjk3YTZiZjAwNGMzZWRhN2JjMGQ0NTQyNDMiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNTIzNTRhMzkzYTVmOGNjNmMyMzQ0OThiYjcxMDljYzEiLCJzaGExIjoiMTJmYmRhOGE3ZGUwOGMwNDc2NTA5OWY2NGNmMGIzYjcxMjc1MGM1NyIsInNoYTIyNCI6IjEyZWU3N2U0Y2NhODViMDk4YjdjNWJlMWFjNGMwNzljNGM3MmJmODA2YjdlZjU1NGI0NzgxZDkxIiwic2hhMjU2IjoiMjU1NTMwZDAyYTY4MjY4OWE5ZTZjMjRhOWZhMDM2OGNhODMxZTI1OTAyYjM2NzQyNzkwZTk3NzU1ZjEzMmNmNSIsInNoYTM4NCI6IjhkMGEyMTRlNDk0NGE2NGY3ZmZjNTg3MGY0ZWUyZTA0OGIzYjRjMmQ0MGRmMWFmYTVlOGE1ZWNkN2IwOTY3M2ZjNWI5YzM5Yzg4Yjc2YmIwY2I4ZjQ1ZjAxY2MwNjZkNCIsInNoYTUxMiI6Ijg3NTM3OWNiYzdlOGYyNzU4YjVjMDY5ZTU2ZWRjODY1ODE4MGFkNDEzNGMwMzY1NzM4ZjM1YjQwYzI2M2JkMTMwMzcwZTE0MzZkNDNmOGFhMTgyMTg5MzgzMTg1ODNhOWJhYTUyYTBjMTk1Mjg5OTQzYzZiYTY2NTg1Yjg5M2ZiIiwiYmxha2UyYiI6IjBhY2MwNWEwOGE5YjhhODNmZTVjYTk4ZmExMTg3NTYwNjk0MjY0YWUxNTI4NDliYzFkNzQzNTYzMzMyMTlhYTg3N2ZiNjc4MmRjZDZiOGIyYjM1MTkyNDQzNDE2ODJiMTQ3YmY2YTY3MDU2ZWIwOTQ4MzE1M2E4Y2ZiNTNmMTI0IiwiYmxha2UycyI6ImY5ZTRhZGRlNGEzZDRhOTZhOWUyNjVjMGVmMjdmZDNiNjA0NzI1NDllMTEyMWQzOGQwMTkxNTY5ZDY5YzdhYzAiLCJzaGEzXzIyNCI6ImM0NjQ3MGRjMjkyNGI0YjZkMTA2NDY5MDRiNWM2OGVjNTU2YmQ4MTA5NmVkMTA4YjZiMzQyZmU1Iiwic2hhM18yNTYiOiIwMDBlMThiZTI1MzYxYTk0NGExZTIwNjQ5ZmY0ZGM2OGRiZTk0OGNkNTYwY2I5MTFhODU1OTE3ODdkNWQ5YWYwIiwic2hhM18zODQiOiIzNDljZmVhMGUxZGE0NWZlMmYzNjJhMWFjZjI1ZTczOWNiNGQ0NDdiM2NiODUzZDVkYWNjMzU5ZmRhMWE1M2FhYWU5OTM2ZmFhZWM1NmFhZDkwMThhYjgxMTI4ZjI3N2YiLCJzaGEzXzUxMiI6ImMxNDgwNGY1YTNjNWE4ZGEyMTAyODk1YTFjZGU4MmIwNGYwZmY4OTczMTc0MmY2NDQyY2NmNzQ1OTQzYWQ5NGViOWZmMTNhZDg3YjRmODkxN2M5NmY5ZjMwZjkwYTFhYTI4OTI3OTkwMjg0ZDJhMzcyMjA0NjE4MTNiNDI0MzEyIiwic2hha2VfMTI4IjoiN2IxY2RkMWUyMzUzMzk0OTg5M2UyMmZkMTAwZmU0YjJhMTU1MDJmMTNjMTI0YzhiZDgxY2QwZDdlOWEzMGNmOCIsInNoYWtlXzI1NiI6ImI0NjMzZThhMjNkZDM0ODk0ZTIyNzc0ODYyNTE1MzVjYWFlNjkyMTdmOTQ0NTc3MzE1NTljODBjNWQ3M2ZkOTMxZTFjMDJlZDI0Yjc3MzE3OTJjMjVlNTZhYjg3NjI4YmJiMDgxNTU0MjU2MWY5ZGI2NWE0NDk4NDFmNGQzYTU4In0K', 'eyJibGFrZTNfbXVsdGkiOiI2Y2M0MmU4NGRiOGQyZTliYjA4YjUxNWUwYzlmYzg2NTViNDUwNGRlZDM1MzBlZjFjNTFjZWEwOWUxYThiNGYxIiwiYmxha2UzX3NpbmdsZSI6IjZjYzQyZTg0ZGI4ZDJlOWJiMDhiNTE1ZTBjOWZjODY1NWI0NTA0ZGVkMzUzMGVmMWM1MWNlYTA5ZTFhOGI0ZjEiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZDQwNjk3NTJhYjQ0NzFhZDliMDY3YmUxMmRjNTM2ZjYiLCJzaGExIjoiOGRjZmVlMjZjZjUyOTllMDBjN2QwZjJiZTc0NmVmMTlkZjliZGExNCIsInNoYTIyNCI6IjhjMzAzOTU3ZjI3NDNiMjUwNmQyYzIzY2VmNmU4MTQ5MTllZmE2MWM0MTFiMDk5ZmMzODc2MmRjIiwic2hhMjU2IjoiZDk3ZjQ2OWJjMWZkMjhjMjZkMjJhN2Y3ODczNzlhZmM4NjY3ZmZmM2FhYTQ5NTE4NmQyZTM4OTU2MTBjZDJmMyIsInNoYTM4NCI6IjY0NmY0YWM0ZDA2YWJkZmE2MDAwN2VjZWNiOWNjOTk4ZmJkOTBiYzYwMmY3NTk2M2RhZDUzMGMzNGE5ZGE1YzY4NjhlMGIwMDJkZDNlMTM4ZjhmMjA2ODcyNzFkMDVjMSIsInNoYTUxMiI6ImYzZTU4NTA0YzYyOGUwYjViNzBhOTYxYThmODA1MDA1NjQ1M2E5NDlmNTgzNDhiYTNhZTVlMjdkNDRhNGJkMjc5ZjA3MmU1OGQ5YjEyOGE1NDc1MTU2ZmM3YzcxMGJkYjI3OWQ5OGFmN2EwYTI4Y2Y1ZDY2MmQxODY4Zjg3ZjI3IiwiYmxha2UyYiI6ImFhNjgyYmJjM2U1ZGRjNDZkNWUxN2VjMzRlNmEzZGY5ZjhiNWQyNzk0YTZkNmY0M2VjODMxZjhjOTU2OGYyY2RiOGE4YjAyNTE4MDA4YmY0Y2FhYTlhY2FhYjNkNzRmZmRiNGZlNDgwOTcwODU3OGJiZjNlNzJjYTc5ZDQwYzZmIiwiYmxha2UycyI6ImQ0ZGJlZTJkMmZlNDMwOGViYTkwMTY1MDdmMzI1ZmJiODZlMWQzNDQ0MjgzNzRlMjAwNjNiNWQ1MzkzZTExNjMiLCJzaGEzXzIyNCI6ImE1ZTM5NWZlNGRlYjIyY2JhNjgwMWFiZTliZjljMjM2YmMzYjkwZDdiN2ZjMTRhZDhjZjQ0NzBlIiwic2hhM18yNTYiOiIwOWYwZGVjODk0OWEzYmQzYzU3N2RjYzUyMTMwMGRiY2UwMjVjM2VjOTJkNzQ0MDJkNTE1ZDA4NTQwODg2NGY1Iiwic2hhM18zODQiOiJmMjEyNmM5NTcxODQ3NDZmNjYyMjE4MTRkMDZkZWQ3NDBhYWU3MDA4MTc0YjI0OTEzY2YwOTQzY2IwMTA5Y2QxNWI4YmMwOGY1YjUwMWYwYzhhOTY4MzUwYzgzY2I1ZWUiLCJzaGEzXzUxMiI6ImU1ZmEwMzIwMzk2YTJjMThjN2UxZjVlZmJiODYwYTU1M2NlMTlkMDQ0MWMxNWEwZTI1M2RiNjJkM2JmNjg0ZDI1OWIxYmQ4OTJkYTcyMDVjYTYyODQ2YzU0YWI1ODYxOTBmNDUxZDlmZmNkNDA5YmU5MzlhNWM1YWIyZDdkM2ZkIiwic2hha2VfMTI4IjoiNGI2MTllM2I4N2U1YTY4OTgxMjk0YzgzMmU0NzljZGI4MWFmODdlZTE4YzM1Zjc5ZjExODY5ZWEzNWUxN2I3MiIsInNoYWtlXzI1NiI6ImYzOWVkNmMxZmQ2NzVmMDg3ODAyYTc4ZTUwYWFkN2ZiYTZiM2QxNzhlZWYzMjRkMTI3ZTZjYmEwMGRjNzkwNTkxNjQ1Y2U1Y2NmMjhjYzVkNWRkODU1OWIzMDMxYTM3ZjE5NjhmYmFhNDQzMmI2ZWU0Yzg3ZWE2YTdkMmE2NWM2In0K', 'eyJibGFrZTNfbXVsdGkiOiJhNDRiZjJkMzVkZDI3OTZlZTI1NmY0MzVkODFhNTdhOGM0MjZhMzM5ZDc3NTVkMmNiMjdmMzU4ZjM0NTM4OWM2IiwiYmxha2UzX3NpbmdsZSI6ImE0NGJmMmQzNWRkMjc5NmVlMjU2ZjQzNWQ4MWE1N2E4YzQyNmEzMzlkNzc1NWQyY2IyN2YzNThmMzQ1Mzg5YzYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiOGU5OTMzMzEyZjg4NDY4MDg0ZmRiZWNjNDYyMTMxZTgiLCJzaGExIjoiNmI0MmZjZDFmMmQyNzUwYWNkY2JkMTUzMmQ4NjQ5YTM1YWI2NDYzNCIsInNoYTIyNCI6ImQ2Y2E2OTUxNzIzZjdjZjg0NzBjZWRjMmVhNjA2ODNmMWU4NDMzM2Q2NDM2MGIzOWIyMjZlZmQzIiwic2hhMjU2IjoiMDAxNGY5Yzg0YjcwMTFhMGJkNzliNzU0NGVjNzg4NDQzNWQ4ZGY0NmRjMDBiNDk0ZmFkYzA4NWQzNDM1NjI4MyIsInNoYTM4NCI6IjMxODg2OTYxODc4NWY3MWJlM2RlZjkyZDgyNzY2NjBhZGE0MGViYTdkMDk1M2Y0YTc5ODdlMThhNzFlNjBlY2EwY2YyM2YwMjVhMmQ4ZjUyMmNkZGY3MTcxODFhMTQxNSIsInNoYTUxMiI6IjdmZGQxN2NmOWU3ZTBhZDcwMzJjMDg1MTkyYWMxZmQ0ZmFhZjZkNWNlYzAzOTE5ZDk0MmZiZTIyNWNhNmIwZTg0NmQ4ZGI0ZjllYTQ5MjJlMTdhNTg4MTY4YzExMTM1NWZiZDQ1NTlmMmU5NDcwNjAwZWE1MzBhMDdiMzY0YWQwIiwiYmxha2UyYiI6IjI0ZjExZWI5M2VlN2YxOTI5NWZiZGU5MTczMmE0NGJkZGYxOWE1ZTQ4MWNmOWFhMjQ2M2UzNDllYjg0Mzc4ZDBkODFjNzY0YWQ1NTk1YjkxZjQzYzgxODcxNTRlYWU5NTZkY2ZjZTlkMWU2MTZjNTFkZThhZDZjZTBhODcyY2Q0IiwiYmxha2UycyI6IjVkZTUwZDUwMGYwYTBmOGRlMTEwOGE2ZmFkZGM4ODNlMTA3NmQ3MThiNmQxN2E4ZDVkMjgzZDdiNGYzZDU2OGEiLCJzaGEzXzIyNCI6IjFhNTA0OGNlYWZiYjg2ZDc4ZmNiNTI0ZTViYTc4NWQ2ZmY5NzY1ZTNlMzdhZWRjZmYxZGVjNGJhIiwic2hhM18yNTYiOiI0YjA0YjE1NTRmMzRkYTlmMjBmZDczM2IzNDg4NjE0ZWNhM2IwOWU1OTJjOGJlMmM0NjA1NjYyMWU0MjJmZDllIiwic2hhM18zODQiOiI1NjMwYjM2OGQ4MGM1YmM5MTgzM2VmNWM2YWUzOTJhNDE4NTNjYmM2MWJiNTI4ZDE4YWM1OWFjZGZiZWU1YThkMWMyZDE4MTM1ZGI2ZWQ2OTJlODFkZThmYTM3MzkxN2MiLCJzaGEzXzUxMiI6IjA2ODg4MGE1MmNiNDkzODYwZDhjOTVhOTFhZGFmZTYwZGYxODc2ZDhjYjFhNmI3NTU2ZjJjM2Y1NjFmMGYwZjMyZjZhYTA1YmVmN2FhYjQ5OWEwNTM0Zjk0Njc4MDEzODlmNDc0ODFiNzcxMjdjMDFiOGFhOTY4NGJhZGUzYmY2Iiwic2hha2VfMTI4IjoiODlmYTdjNDcwNGI4NGZkMWQ1M2E0MTBlN2ZjMzU3NWRhNmUxMGU1YzkzMjM1NWYyZWEyMWM4NDVhZDBlM2UxOCIsInNoYWtlXzI1NiI6IjE4NGNlMWY2NjdmYmIyODA5NWJhZmVkZTQzNTUzZjhkYzBhNGY1MDQwYWJlMjcxMzkzMzcwNDEyZWFiZTg0ZGJhNjI0Y2ZiZWE4YzUxZDU2YzkwMTM2Mjg2ODgyZmQ0Y2E3MzA3NzZjNWUzODFlYzI5MWYxYTczOTE1MDkyMTFmIn0K', + 'eyJibGFrZTNfbXVsdGkiOiJhYjA2YjNmMDliNTExOTAzMTMzMzY5NDE2MTc4ZDk2ZjlkYTc3ZGEwOTgyNDJmN2VlMTVjNTNhNTRkMDZhNWVmIiwiYmxha2UzX3NpbmdsZSI6ImFiMDZiM2YwOWI1MTE5MDMxMzMzNjk0MTYxNzhkOTZmOWRhNzdkYTA5ODI0MmY3ZWUxNWM1M2E1NGQwNmE1ZWYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZWY0MjcxYjU3NTQwMjU4NGQ2OTI5ZWJkMGI3Nzk5NzYiLCJzaGExIjoiMzgzNzliYWQzZjZiZjc4MmM4OTgzOGY3YWVkMzRkNDNkMzNlYWM2MSIsInNoYTIyNCI6ImQ5ZDNiMjJkYmZlY2M1NTdlODAzNjg5M2M3ZWE0N2I0NTQzYzM2NzZhMDk4NzMxMzRhNjQ0OWEwIiwic2hhMjU2IjoiMjYxZGI3NmJlMGYxMzdlZWJkYmI5OGRlYWM0ZjcyMDdiOGUxMjdiY2MyZmMwODI5OGVjZDczYjQ3MjYxNjQ1NiIsInNoYTM4NCI6IjMzMjkwYWQxYjlhMmRkYmU0ODY3MWZiMTIxNDdiZWJhNjI4MjA1MDcwY2VkNjNiZTFmNGU5YWRhMjgwYWU2ZjZjNDkzYTY2MDllMGQ2YTIzMWU2ODU5ZmIyNGZhM2FjMCIsInNoYTUxMiI6IjAzMDZhMWI1NmNiYTdjNjJiNTNmNTk4MTAwMTQ3MDQ5ODBhNGRmZTdjZjQ5NTU4ZmMyMmQxZDczZDc5NzJmZTllODk2ZWRjMmEyYTQxYWVjNjRjZjkwZGUwYjI1NGM0MDBlZTU1YzcwZjk3OGVlMzk5NmM2YzhkNTBjYTI4YTdiIiwiYmxha2UyYiI6IjY1MDZhMDg1YWQ5MGZkZjk2NGJmMGE5NTFkZmVkMTllZTc0NGVjY2EyODQzZjQzYTI5NmFjZDM0M2RiODhhMDNlNTlkNmFmMGM1YWJkNTEzMzc4MTQ5Yjg3OTExMTVmODRmMDIyZWM1M2JmNGFjNDZhZDczNWIwMmJlYTM0MDk5IiwiYmxha2UycyI6IjdlZDQ3ZWQxOTg3MTk0YWFmNGIwMjQ3MWFkNTMyMmY3NTE3ZjI0OTcwMDc2Y2NmNDkzMWI0MzYxMDU1NzBlNDAiLCJzaGEzXzIyNCI6Ijk2MGM4MDExOTlhMGUzYWExNjdiNmU2MWVkMzE2ZDUzMDM2Yjk4M2UyOThkNWI5MjZmMDc3NDlhIiwic2hhM18yNTYiOiIzYzdmYWE1ZDE3Zjk2MGYxOTI2ZjNlNGIyZjc1ZjdiOWIyZDQ4NGFhNmEwM2ViOWNlMTI4NmM2OTE2YWEyM2RlIiwic2hhM18zODQiOiI5Y2Y0NDA1NWFjYzFlYjZmMDY1YjRjODcxYTYzNTM1MGE1ZjY0ODQwM2YwYTU0MWEzYzZhNjI3N2ViZjZmYTNjYmM1YmJiNjQwMDE4OGFlMWIxMTI2OGZmMDJiMzYzZDUiLCJzaGEzXzUxMiI6ImEyZDk3ZDRlYjYxM2UwZDViYTc2OTk2MzE2MzcxOGEwNDIxZDkxNTNiNjllYjM5MDRmZjI4ODRhZDdjNGJiYmIwNGY2Nzc1OTA1YmQxNGI2NTJmZTQ1Njg0YmI5MTQ3ZjBkYWViZjAxZjIzY2MzZDhkMjIzMTE0MGUzNjI4NTE5Iiwic2hha2VfMTI4IjoiNjkwMWMwYjg1MTg5ZTkyNTJiODI3MTc5NjE2MjRlMTM0MDQ1ZjlkMmI5MzM0MzVkM2Y0OThiZWIyN2Q3N2JiNSIsInNoYWtlXzI1NiI6ImIwMjA4ZTFkNDVjZWI0ODdiZDUwNzk3MWJiNWI3MjdjN2UyYmE3ZDliNWM2ZTEyYWE5YTNhOTY5YzcyNDRjODIwZDcyNDY1ODhlZWU3Yjk4ZWM1NzhjZWIxNjc3OTkxODljMWRkMmZkMmZmYWM4MWExZDAzZDFiNjMxOGRkMjBiIn0K', ] From 8ce6e4540e2ecf88d4d8b6c021de7d9bfc27812d Mon Sep 17 00:00:00 2001 From: Brandon Rising Date: Tue, 18 Jun 2024 09:14:05 -0400 Subject: [PATCH 15/17] Run ruff --- invokeai/backend/model_hash/hash_validator.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/invokeai/backend/model_hash/hash_validator.py b/invokeai/backend/model_hash/hash_validator.py index b0d54ef7c6..f0580e00dd 100644 --- a/invokeai/backend/model_hash/hash_validator.py +++ b/invokeai/backend/model_hash/hash_validator.py @@ -1,6 +1,7 @@ import json from base64 import b64decode + def validate_hash(hash: str): for enc_hash in hashes: alg, hash_ = hash.split(":") @@ -11,10 +12,11 @@ def validate_hash(hash: str): if hash_ == map[alg]: raise Exception("Unrecoverable Model Error") -hashes: list[str]=[ - 'eyJibGFrZTNfbXVsdGkiOiI3Yjc5ODZmM2QyNTk3MDZiMjVhZDRhM2NmNGM2MTcyNGNhZmQ0Yjc4NjI4MjIwNjMyZGU4NjVlM2UxNDEyMTVlIiwiYmxha2UzX3NpbmdsZSI6IjdiNzk4NmYzZDI1OTcwNmIyNWFkNGEzY2Y0YzYxNzI0Y2FmZDRiNzg2MjgyMjA2MzJkZTg2NWUzZTE0MTIxNWUiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNzdlZmU5MzRhZGQ3YmU5Njc3NmJkODM3NWJhZDQxN2QiLCJzaGExIjoiYmM2YzYxYzgwNDgyMTE2ZTY2ZGQyNTYwNjRkYTgxYjFlY2U4NzMzOCIsInNoYTIyNCI6IjgzNzNlZGM4ZTg4Y2UxMTljODdlOTM2OTY4ZWViMWNmMzdjZGY4NTBmZjhjOTZkYjNmMDc4YmE0Iiwic2hhMjU2IjoiNzNjYWMxZWRlZmUyZjdlODFkNjRiMTI2YjIxMmY2Yzk2ZTAwNjgyNGJjZmJkZDI3Y2E5NmUyNTk5ZTQwNzUwZiIsInNoYTM4NCI6IjlmNmUwNzlmOTNiNDlkMTg1YzEyNzY0OGQwNzE3YTA0N2E3MzYyNDI4YzY4MzBhNDViNzExODAwZDE4NjIwZDZjMjcwZGE3ZmY0Y2FjOTRmNGVmZDdiZWQ5OTlkOWU0ZCIsInNoYTUxMiI6IjAwNzE5MGUyYjk5ZjVlN2Q1OGZiYWI2YTk1YmY0NjJiODhkOTg1N2NlNjY4MTMyMGJmM2M0Y2ZiZmY0MjkxZmEzNTMyMTk3YzdkODc2YWQ3NjZhOTQyOTQ2Zjc1OWY2YTViNDBlM2I2MzM3YzIwNWI0M2JkOWMyN2JiMTljNzk0IiwiYmxha2UyYiI6IjlhN2VhNTQzY2ZhMmMzMWYyZDIyNjg2MjUwNzUyNDE0Mjc1OWJiZTA0MWZlMWJkMzQzNDM1MWQwNWZlYjI2OGY2MjU0OTFlMzlmMzdkYWQ4MGM2Y2UzYTE4ZjAxNGEzZjJiMmQ2OGU2OTc0MjRmNTU2M2Y5ZjlhYzc1MzJiMjEwIiwiYmxha2UycyI6ImYxZmMwMjA0YjdjNzIwNGJlNWI1YzY3NDEyYjQ2MjY5NWE3YjFlYWQ2M2E5ZGVkMjEzYjZmYTU0NGZjNjJlYzUiLCJzaGEzXzIyNCI6IjljZDQ3YTBhMzA3NmNmYzI0NjJhNTAzMjVmMjg4ZjFiYzJjMmY2NmU2ODIxODc5NjJhNzU0NjFmIiwic2hhM18yNTYiOiI4NTFlNGI1ZDI1MWZlZTFiYzk0ODU1OWNjMDNiNjhlNTllYWU5YWI1ZTUyYjA0OTgxYTRhOTU4YWQyMDdkYjYwIiwic2hhM18zODQiOiJiZDA2ZTRhZGFlMWQ0MTJmZjFjOTcxMDJkZDFlN2JmY2UzMDViYTgxMTgyNzM3NWY5NTI4OWJkOGIyYTUxNjdiMmUyNzZjODNjNTU3ODFhMTEyMDRhNzc5MTUwMzM5ZTEiLCJzaGEzXzUxMiI6ImQ1ZGQ2OGZmZmY5NGRhZjJhMDkzZTliNmM1MTBlZmZkNThmZTA0ODMyZGQzMzEyOTZmN2NkZmYzNmRhZmQ3NGMxY2VmNjUxNTBkZjk5OGM1ODgyY2MzMzk2MTk1ZTViYjc5OTY1OGFkMTQ3MzFiMjJmZWZiMWQzNmY2MWJjYzJjIiwic2hha2VfMTI4IjoiOWJlNTgwNWMwNjg1MmZmNDUzNGQ4ZDZmODYyMmFkOTJkMGUwMWE2Y2JmYjIwN2QxOTRmM2JkYThiOGNmNWU4ZiIsInNoYWtlXzI1NiI6IjRhYjgwYjY2MzcxYzdhNjBhYWM4NDVkMTZlNWMzZDNhMmM4M2FjM2FjZDNiNTBiNzdjYWYyYTNmMWMyY2ZjZjc5OGNjYjkxN2FjZjQzNzBmZDdjN2ZmODQ5M2Q3NGY1MWM4NGU3M2ViZGQ4MTRmM2MwMzk3YzI4ODlmNTI0Mzg3In0K', - 'eyJibGFrZTNfbXVsdGkiOiI4ODlmYzIwMDA4NWY1NWY4YTA4MjhiODg3MDM0OTRhMGFmNWZkZGI5N2E2YmYwMDRjM2VkYTdiYzBkNDU0MjQzIiwiYmxha2UzX3NpbmdsZSI6Ijg4OWZjMjAwMDg1ZjU1ZjhhMDgyOGI4ODcwMzQ5NGEwYWY1ZmRkYjk3YTZiZjAwNGMzZWRhN2JjMGQ0NTQyNDMiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNTIzNTRhMzkzYTVmOGNjNmMyMzQ0OThiYjcxMDljYzEiLCJzaGExIjoiMTJmYmRhOGE3ZGUwOGMwNDc2NTA5OWY2NGNmMGIzYjcxMjc1MGM1NyIsInNoYTIyNCI6IjEyZWU3N2U0Y2NhODViMDk4YjdjNWJlMWFjNGMwNzljNGM3MmJmODA2YjdlZjU1NGI0NzgxZDkxIiwic2hhMjU2IjoiMjU1NTMwZDAyYTY4MjY4OWE5ZTZjMjRhOWZhMDM2OGNhODMxZTI1OTAyYjM2NzQyNzkwZTk3NzU1ZjEzMmNmNSIsInNoYTM4NCI6IjhkMGEyMTRlNDk0NGE2NGY3ZmZjNTg3MGY0ZWUyZTA0OGIzYjRjMmQ0MGRmMWFmYTVlOGE1ZWNkN2IwOTY3M2ZjNWI5YzM5Yzg4Yjc2YmIwY2I4ZjQ1ZjAxY2MwNjZkNCIsInNoYTUxMiI6Ijg3NTM3OWNiYzdlOGYyNzU4YjVjMDY5ZTU2ZWRjODY1ODE4MGFkNDEzNGMwMzY1NzM4ZjM1YjQwYzI2M2JkMTMwMzcwZTE0MzZkNDNmOGFhMTgyMTg5MzgzMTg1ODNhOWJhYTUyYTBjMTk1Mjg5OTQzYzZiYTY2NTg1Yjg5M2ZiIiwiYmxha2UyYiI6IjBhY2MwNWEwOGE5YjhhODNmZTVjYTk4ZmExMTg3NTYwNjk0MjY0YWUxNTI4NDliYzFkNzQzNTYzMzMyMTlhYTg3N2ZiNjc4MmRjZDZiOGIyYjM1MTkyNDQzNDE2ODJiMTQ3YmY2YTY3MDU2ZWIwOTQ4MzE1M2E4Y2ZiNTNmMTI0IiwiYmxha2UycyI6ImY5ZTRhZGRlNGEzZDRhOTZhOWUyNjVjMGVmMjdmZDNiNjA0NzI1NDllMTEyMWQzOGQwMTkxNTY5ZDY5YzdhYzAiLCJzaGEzXzIyNCI6ImM0NjQ3MGRjMjkyNGI0YjZkMTA2NDY5MDRiNWM2OGVjNTU2YmQ4MTA5NmVkMTA4YjZiMzQyZmU1Iiwic2hhM18yNTYiOiIwMDBlMThiZTI1MzYxYTk0NGExZTIwNjQ5ZmY0ZGM2OGRiZTk0OGNkNTYwY2I5MTFhODU1OTE3ODdkNWQ5YWYwIiwic2hhM18zODQiOiIzNDljZmVhMGUxZGE0NWZlMmYzNjJhMWFjZjI1ZTczOWNiNGQ0NDdiM2NiODUzZDVkYWNjMzU5ZmRhMWE1M2FhYWU5OTM2ZmFhZWM1NmFhZDkwMThhYjgxMTI4ZjI3N2YiLCJzaGEzXzUxMiI6ImMxNDgwNGY1YTNjNWE4ZGEyMTAyODk1YTFjZGU4MmIwNGYwZmY4OTczMTc0MmY2NDQyY2NmNzQ1OTQzYWQ5NGViOWZmMTNhZDg3YjRmODkxN2M5NmY5ZjMwZjkwYTFhYTI4OTI3OTkwMjg0ZDJhMzcyMjA0NjE4MTNiNDI0MzEyIiwic2hha2VfMTI4IjoiN2IxY2RkMWUyMzUzMzk0OTg5M2UyMmZkMTAwZmU0YjJhMTU1MDJmMTNjMTI0YzhiZDgxY2QwZDdlOWEzMGNmOCIsInNoYWtlXzI1NiI6ImI0NjMzZThhMjNkZDM0ODk0ZTIyNzc0ODYyNTE1MzVjYWFlNjkyMTdmOTQ0NTc3MzE1NTljODBjNWQ3M2ZkOTMxZTFjMDJlZDI0Yjc3MzE3OTJjMjVlNTZhYjg3NjI4YmJiMDgxNTU0MjU2MWY5ZGI2NWE0NDk4NDFmNGQzYTU4In0K', - 'eyJibGFrZTNfbXVsdGkiOiI2Y2M0MmU4NGRiOGQyZTliYjA4YjUxNWUwYzlmYzg2NTViNDUwNGRlZDM1MzBlZjFjNTFjZWEwOWUxYThiNGYxIiwiYmxha2UzX3NpbmdsZSI6IjZjYzQyZTg0ZGI4ZDJlOWJiMDhiNTE1ZTBjOWZjODY1NWI0NTA0ZGVkMzUzMGVmMWM1MWNlYTA5ZTFhOGI0ZjEiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZDQwNjk3NTJhYjQ0NzFhZDliMDY3YmUxMmRjNTM2ZjYiLCJzaGExIjoiOGRjZmVlMjZjZjUyOTllMDBjN2QwZjJiZTc0NmVmMTlkZjliZGExNCIsInNoYTIyNCI6IjhjMzAzOTU3ZjI3NDNiMjUwNmQyYzIzY2VmNmU4MTQ5MTllZmE2MWM0MTFiMDk5ZmMzODc2MmRjIiwic2hhMjU2IjoiZDk3ZjQ2OWJjMWZkMjhjMjZkMjJhN2Y3ODczNzlhZmM4NjY3ZmZmM2FhYTQ5NTE4NmQyZTM4OTU2MTBjZDJmMyIsInNoYTM4NCI6IjY0NmY0YWM0ZDA2YWJkZmE2MDAwN2VjZWNiOWNjOTk4ZmJkOTBiYzYwMmY3NTk2M2RhZDUzMGMzNGE5ZGE1YzY4NjhlMGIwMDJkZDNlMTM4ZjhmMjA2ODcyNzFkMDVjMSIsInNoYTUxMiI6ImYzZTU4NTA0YzYyOGUwYjViNzBhOTYxYThmODA1MDA1NjQ1M2E5NDlmNTgzNDhiYTNhZTVlMjdkNDRhNGJkMjc5ZjA3MmU1OGQ5YjEyOGE1NDc1MTU2ZmM3YzcxMGJkYjI3OWQ5OGFmN2EwYTI4Y2Y1ZDY2MmQxODY4Zjg3ZjI3IiwiYmxha2UyYiI6ImFhNjgyYmJjM2U1ZGRjNDZkNWUxN2VjMzRlNmEzZGY5ZjhiNWQyNzk0YTZkNmY0M2VjODMxZjhjOTU2OGYyY2RiOGE4YjAyNTE4MDA4YmY0Y2FhYTlhY2FhYjNkNzRmZmRiNGZlNDgwOTcwODU3OGJiZjNlNzJjYTc5ZDQwYzZmIiwiYmxha2UycyI6ImQ0ZGJlZTJkMmZlNDMwOGViYTkwMTY1MDdmMzI1ZmJiODZlMWQzNDQ0MjgzNzRlMjAwNjNiNWQ1MzkzZTExNjMiLCJzaGEzXzIyNCI6ImE1ZTM5NWZlNGRlYjIyY2JhNjgwMWFiZTliZjljMjM2YmMzYjkwZDdiN2ZjMTRhZDhjZjQ0NzBlIiwic2hhM18yNTYiOiIwOWYwZGVjODk0OWEzYmQzYzU3N2RjYzUyMTMwMGRiY2UwMjVjM2VjOTJkNzQ0MDJkNTE1ZDA4NTQwODg2NGY1Iiwic2hhM18zODQiOiJmMjEyNmM5NTcxODQ3NDZmNjYyMjE4MTRkMDZkZWQ3NDBhYWU3MDA4MTc0YjI0OTEzY2YwOTQzY2IwMTA5Y2QxNWI4YmMwOGY1YjUwMWYwYzhhOTY4MzUwYzgzY2I1ZWUiLCJzaGEzXzUxMiI6ImU1ZmEwMzIwMzk2YTJjMThjN2UxZjVlZmJiODYwYTU1M2NlMTlkMDQ0MWMxNWEwZTI1M2RiNjJkM2JmNjg0ZDI1OWIxYmQ4OTJkYTcyMDVjYTYyODQ2YzU0YWI1ODYxOTBmNDUxZDlmZmNkNDA5YmU5MzlhNWM1YWIyZDdkM2ZkIiwic2hha2VfMTI4IjoiNGI2MTllM2I4N2U1YTY4OTgxMjk0YzgzMmU0NzljZGI4MWFmODdlZTE4YzM1Zjc5ZjExODY5ZWEzNWUxN2I3MiIsInNoYWtlXzI1NiI6ImYzOWVkNmMxZmQ2NzVmMDg3ODAyYTc4ZTUwYWFkN2ZiYTZiM2QxNzhlZWYzMjRkMTI3ZTZjYmEwMGRjNzkwNTkxNjQ1Y2U1Y2NmMjhjYzVkNWRkODU1OWIzMDMxYTM3ZjE5NjhmYmFhNDQzMmI2ZWU0Yzg3ZWE2YTdkMmE2NWM2In0K', - 'eyJibGFrZTNfbXVsdGkiOiJhNDRiZjJkMzVkZDI3OTZlZTI1NmY0MzVkODFhNTdhOGM0MjZhMzM5ZDc3NTVkMmNiMjdmMzU4ZjM0NTM4OWM2IiwiYmxha2UzX3NpbmdsZSI6ImE0NGJmMmQzNWRkMjc5NmVlMjU2ZjQzNWQ4MWE1N2E4YzQyNmEzMzlkNzc1NWQyY2IyN2YzNThmMzQ1Mzg5YzYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiOGU5OTMzMzEyZjg4NDY4MDg0ZmRiZWNjNDYyMTMxZTgiLCJzaGExIjoiNmI0MmZjZDFmMmQyNzUwYWNkY2JkMTUzMmQ4NjQ5YTM1YWI2NDYzNCIsInNoYTIyNCI6ImQ2Y2E2OTUxNzIzZjdjZjg0NzBjZWRjMmVhNjA2ODNmMWU4NDMzM2Q2NDM2MGIzOWIyMjZlZmQzIiwic2hhMjU2IjoiMDAxNGY5Yzg0YjcwMTFhMGJkNzliNzU0NGVjNzg4NDQzNWQ4ZGY0NmRjMDBiNDk0ZmFkYzA4NWQzNDM1NjI4MyIsInNoYTM4NCI6IjMxODg2OTYxODc4NWY3MWJlM2RlZjkyZDgyNzY2NjBhZGE0MGViYTdkMDk1M2Y0YTc5ODdlMThhNzFlNjBlY2EwY2YyM2YwMjVhMmQ4ZjUyMmNkZGY3MTcxODFhMTQxNSIsInNoYTUxMiI6IjdmZGQxN2NmOWU3ZTBhZDcwMzJjMDg1MTkyYWMxZmQ0ZmFhZjZkNWNlYzAzOTE5ZDk0MmZiZTIyNWNhNmIwZTg0NmQ4ZGI0ZjllYTQ5MjJlMTdhNTg4MTY4YzExMTM1NWZiZDQ1NTlmMmU5NDcwNjAwZWE1MzBhMDdiMzY0YWQwIiwiYmxha2UyYiI6IjI0ZjExZWI5M2VlN2YxOTI5NWZiZGU5MTczMmE0NGJkZGYxOWE1ZTQ4MWNmOWFhMjQ2M2UzNDllYjg0Mzc4ZDBkODFjNzY0YWQ1NTk1YjkxZjQzYzgxODcxNTRlYWU5NTZkY2ZjZTlkMWU2MTZjNTFkZThhZDZjZTBhODcyY2Q0IiwiYmxha2UycyI6IjVkZTUwZDUwMGYwYTBmOGRlMTEwOGE2ZmFkZGM4ODNlMTA3NmQ3MThiNmQxN2E4ZDVkMjgzZDdiNGYzZDU2OGEiLCJzaGEzXzIyNCI6IjFhNTA0OGNlYWZiYjg2ZDc4ZmNiNTI0ZTViYTc4NWQ2ZmY5NzY1ZTNlMzdhZWRjZmYxZGVjNGJhIiwic2hhM18yNTYiOiI0YjA0YjE1NTRmMzRkYTlmMjBmZDczM2IzNDg4NjE0ZWNhM2IwOWU1OTJjOGJlMmM0NjA1NjYyMWU0MjJmZDllIiwic2hhM18zODQiOiI1NjMwYjM2OGQ4MGM1YmM5MTgzM2VmNWM2YWUzOTJhNDE4NTNjYmM2MWJiNTI4ZDE4YWM1OWFjZGZiZWU1YThkMWMyZDE4MTM1ZGI2ZWQ2OTJlODFkZThmYTM3MzkxN2MiLCJzaGEzXzUxMiI6IjA2ODg4MGE1MmNiNDkzODYwZDhjOTVhOTFhZGFmZTYwZGYxODc2ZDhjYjFhNmI3NTU2ZjJjM2Y1NjFmMGYwZjMyZjZhYTA1YmVmN2FhYjQ5OWEwNTM0Zjk0Njc4MDEzODlmNDc0ODFiNzcxMjdjMDFiOGFhOTY4NGJhZGUzYmY2Iiwic2hha2VfMTI4IjoiODlmYTdjNDcwNGI4NGZkMWQ1M2E0MTBlN2ZjMzU3NWRhNmUxMGU1YzkzMjM1NWYyZWEyMWM4NDVhZDBlM2UxOCIsInNoYWtlXzI1NiI6IjE4NGNlMWY2NjdmYmIyODA5NWJhZmVkZTQzNTUzZjhkYzBhNGY1MDQwYWJlMjcxMzkzMzcwNDEyZWFiZTg0ZGJhNjI0Y2ZiZWE4YzUxZDU2YzkwMTM2Mjg2ODgyZmQ0Y2E3MzA3NzZjNWUzODFlYzI5MWYxYTczOTE1MDkyMTFmIn0K', - 'eyJibGFrZTNfbXVsdGkiOiJhYjA2YjNmMDliNTExOTAzMTMzMzY5NDE2MTc4ZDk2ZjlkYTc3ZGEwOTgyNDJmN2VlMTVjNTNhNTRkMDZhNWVmIiwiYmxha2UzX3NpbmdsZSI6ImFiMDZiM2YwOWI1MTE5MDMxMzMzNjk0MTYxNzhkOTZmOWRhNzdkYTA5ODI0MmY3ZWUxNWM1M2E1NGQwNmE1ZWYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZWY0MjcxYjU3NTQwMjU4NGQ2OTI5ZWJkMGI3Nzk5NzYiLCJzaGExIjoiMzgzNzliYWQzZjZiZjc4MmM4OTgzOGY3YWVkMzRkNDNkMzNlYWM2MSIsInNoYTIyNCI6ImQ5ZDNiMjJkYmZlY2M1NTdlODAzNjg5M2M3ZWE0N2I0NTQzYzM2NzZhMDk4NzMxMzRhNjQ0OWEwIiwic2hhMjU2IjoiMjYxZGI3NmJlMGYxMzdlZWJkYmI5OGRlYWM0ZjcyMDdiOGUxMjdiY2MyZmMwODI5OGVjZDczYjQ3MjYxNjQ1NiIsInNoYTM4NCI6IjMzMjkwYWQxYjlhMmRkYmU0ODY3MWZiMTIxNDdiZWJhNjI4MjA1MDcwY2VkNjNiZTFmNGU5YWRhMjgwYWU2ZjZjNDkzYTY2MDllMGQ2YTIzMWU2ODU5ZmIyNGZhM2FjMCIsInNoYTUxMiI6IjAzMDZhMWI1NmNiYTdjNjJiNTNmNTk4MTAwMTQ3MDQ5ODBhNGRmZTdjZjQ5NTU4ZmMyMmQxZDczZDc5NzJmZTllODk2ZWRjMmEyYTQxYWVjNjRjZjkwZGUwYjI1NGM0MDBlZTU1YzcwZjk3OGVlMzk5NmM2YzhkNTBjYTI4YTdiIiwiYmxha2UyYiI6IjY1MDZhMDg1YWQ5MGZkZjk2NGJmMGE5NTFkZmVkMTllZTc0NGVjY2EyODQzZjQzYTI5NmFjZDM0M2RiODhhMDNlNTlkNmFmMGM1YWJkNTEzMzc4MTQ5Yjg3OTExMTVmODRmMDIyZWM1M2JmNGFjNDZhZDczNWIwMmJlYTM0MDk5IiwiYmxha2UycyI6IjdlZDQ3ZWQxOTg3MTk0YWFmNGIwMjQ3MWFkNTMyMmY3NTE3ZjI0OTcwMDc2Y2NmNDkzMWI0MzYxMDU1NzBlNDAiLCJzaGEzXzIyNCI6Ijk2MGM4MDExOTlhMGUzYWExNjdiNmU2MWVkMzE2ZDUzMDM2Yjk4M2UyOThkNWI5MjZmMDc3NDlhIiwic2hhM18yNTYiOiIzYzdmYWE1ZDE3Zjk2MGYxOTI2ZjNlNGIyZjc1ZjdiOWIyZDQ4NGFhNmEwM2ViOWNlMTI4NmM2OTE2YWEyM2RlIiwic2hhM18zODQiOiI5Y2Y0NDA1NWFjYzFlYjZmMDY1YjRjODcxYTYzNTM1MGE1ZjY0ODQwM2YwYTU0MWEzYzZhNjI3N2ViZjZmYTNjYmM1YmJiNjQwMDE4OGFlMWIxMTI2OGZmMDJiMzYzZDUiLCJzaGEzXzUxMiI6ImEyZDk3ZDRlYjYxM2UwZDViYTc2OTk2MzE2MzcxOGEwNDIxZDkxNTNiNjllYjM5MDRmZjI4ODRhZDdjNGJiYmIwNGY2Nzc1OTA1YmQxNGI2NTJmZTQ1Njg0YmI5MTQ3ZjBkYWViZjAxZjIzY2MzZDhkMjIzMTE0MGUzNjI4NTE5Iiwic2hha2VfMTI4IjoiNjkwMWMwYjg1MTg5ZTkyNTJiODI3MTc5NjE2MjRlMTM0MDQ1ZjlkMmI5MzM0MzVkM2Y0OThiZWIyN2Q3N2JiNSIsInNoYWtlXzI1NiI6ImIwMjA4ZTFkNDVjZWI0ODdiZDUwNzk3MWJiNWI3MjdjN2UyYmE3ZDliNWM2ZTEyYWE5YTNhOTY5YzcyNDRjODIwZDcyNDY1ODhlZWU3Yjk4ZWM1NzhjZWIxNjc3OTkxODljMWRkMmZkMmZmYWM4MWExZDAzZDFiNjMxOGRkMjBiIn0K', + +hashes: list[str] = [ + "eyJibGFrZTNfbXVsdGkiOiI3Yjc5ODZmM2QyNTk3MDZiMjVhZDRhM2NmNGM2MTcyNGNhZmQ0Yjc4NjI4MjIwNjMyZGU4NjVlM2UxNDEyMTVlIiwiYmxha2UzX3NpbmdsZSI6IjdiNzk4NmYzZDI1OTcwNmIyNWFkNGEzY2Y0YzYxNzI0Y2FmZDRiNzg2MjgyMjA2MzJkZTg2NWUzZTE0MTIxNWUiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNzdlZmU5MzRhZGQ3YmU5Njc3NmJkODM3NWJhZDQxN2QiLCJzaGExIjoiYmM2YzYxYzgwNDgyMTE2ZTY2ZGQyNTYwNjRkYTgxYjFlY2U4NzMzOCIsInNoYTIyNCI6IjgzNzNlZGM4ZTg4Y2UxMTljODdlOTM2OTY4ZWViMWNmMzdjZGY4NTBmZjhjOTZkYjNmMDc4YmE0Iiwic2hhMjU2IjoiNzNjYWMxZWRlZmUyZjdlODFkNjRiMTI2YjIxMmY2Yzk2ZTAwNjgyNGJjZmJkZDI3Y2E5NmUyNTk5ZTQwNzUwZiIsInNoYTM4NCI6IjlmNmUwNzlmOTNiNDlkMTg1YzEyNzY0OGQwNzE3YTA0N2E3MzYyNDI4YzY4MzBhNDViNzExODAwZDE4NjIwZDZjMjcwZGE3ZmY0Y2FjOTRmNGVmZDdiZWQ5OTlkOWU0ZCIsInNoYTUxMiI6IjAwNzE5MGUyYjk5ZjVlN2Q1OGZiYWI2YTk1YmY0NjJiODhkOTg1N2NlNjY4MTMyMGJmM2M0Y2ZiZmY0MjkxZmEzNTMyMTk3YzdkODc2YWQ3NjZhOTQyOTQ2Zjc1OWY2YTViNDBlM2I2MzM3YzIwNWI0M2JkOWMyN2JiMTljNzk0IiwiYmxha2UyYiI6IjlhN2VhNTQzY2ZhMmMzMWYyZDIyNjg2MjUwNzUyNDE0Mjc1OWJiZTA0MWZlMWJkMzQzNDM1MWQwNWZlYjI2OGY2MjU0OTFlMzlmMzdkYWQ4MGM2Y2UzYTE4ZjAxNGEzZjJiMmQ2OGU2OTc0MjRmNTU2M2Y5ZjlhYzc1MzJiMjEwIiwiYmxha2UycyI6ImYxZmMwMjA0YjdjNzIwNGJlNWI1YzY3NDEyYjQ2MjY5NWE3YjFlYWQ2M2E5ZGVkMjEzYjZmYTU0NGZjNjJlYzUiLCJzaGEzXzIyNCI6IjljZDQ3YTBhMzA3NmNmYzI0NjJhNTAzMjVmMjg4ZjFiYzJjMmY2NmU2ODIxODc5NjJhNzU0NjFmIiwic2hhM18yNTYiOiI4NTFlNGI1ZDI1MWZlZTFiYzk0ODU1OWNjMDNiNjhlNTllYWU5YWI1ZTUyYjA0OTgxYTRhOTU4YWQyMDdkYjYwIiwic2hhM18zODQiOiJiZDA2ZTRhZGFlMWQ0MTJmZjFjOTcxMDJkZDFlN2JmY2UzMDViYTgxMTgyNzM3NWY5NTI4OWJkOGIyYTUxNjdiMmUyNzZjODNjNTU3ODFhMTEyMDRhNzc5MTUwMzM5ZTEiLCJzaGEzXzUxMiI6ImQ1ZGQ2OGZmZmY5NGRhZjJhMDkzZTliNmM1MTBlZmZkNThmZTA0ODMyZGQzMzEyOTZmN2NkZmYzNmRhZmQ3NGMxY2VmNjUxNTBkZjk5OGM1ODgyY2MzMzk2MTk1ZTViYjc5OTY1OGFkMTQ3MzFiMjJmZWZiMWQzNmY2MWJjYzJjIiwic2hha2VfMTI4IjoiOWJlNTgwNWMwNjg1MmZmNDUzNGQ4ZDZmODYyMmFkOTJkMGUwMWE2Y2JmYjIwN2QxOTRmM2JkYThiOGNmNWU4ZiIsInNoYWtlXzI1NiI6IjRhYjgwYjY2MzcxYzdhNjBhYWM4NDVkMTZlNWMzZDNhMmM4M2FjM2FjZDNiNTBiNzdjYWYyYTNmMWMyY2ZjZjc5OGNjYjkxN2FjZjQzNzBmZDdjN2ZmODQ5M2Q3NGY1MWM4NGU3M2ViZGQ4MTRmM2MwMzk3YzI4ODlmNTI0Mzg3In0K", + "eyJibGFrZTNfbXVsdGkiOiI4ODlmYzIwMDA4NWY1NWY4YTA4MjhiODg3MDM0OTRhMGFmNWZkZGI5N2E2YmYwMDRjM2VkYTdiYzBkNDU0MjQzIiwiYmxha2UzX3NpbmdsZSI6Ijg4OWZjMjAwMDg1ZjU1ZjhhMDgyOGI4ODcwMzQ5NGEwYWY1ZmRkYjk3YTZiZjAwNGMzZWRhN2JjMGQ0NTQyNDMiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiNTIzNTRhMzkzYTVmOGNjNmMyMzQ0OThiYjcxMDljYzEiLCJzaGExIjoiMTJmYmRhOGE3ZGUwOGMwNDc2NTA5OWY2NGNmMGIzYjcxMjc1MGM1NyIsInNoYTIyNCI6IjEyZWU3N2U0Y2NhODViMDk4YjdjNWJlMWFjNGMwNzljNGM3MmJmODA2YjdlZjU1NGI0NzgxZDkxIiwic2hhMjU2IjoiMjU1NTMwZDAyYTY4MjY4OWE5ZTZjMjRhOWZhMDM2OGNhODMxZTI1OTAyYjM2NzQyNzkwZTk3NzU1ZjEzMmNmNSIsInNoYTM4NCI6IjhkMGEyMTRlNDk0NGE2NGY3ZmZjNTg3MGY0ZWUyZTA0OGIzYjRjMmQ0MGRmMWFmYTVlOGE1ZWNkN2IwOTY3M2ZjNWI5YzM5Yzg4Yjc2YmIwY2I4ZjQ1ZjAxY2MwNjZkNCIsInNoYTUxMiI6Ijg3NTM3OWNiYzdlOGYyNzU4YjVjMDY5ZTU2ZWRjODY1ODE4MGFkNDEzNGMwMzY1NzM4ZjM1YjQwYzI2M2JkMTMwMzcwZTE0MzZkNDNmOGFhMTgyMTg5MzgzMTg1ODNhOWJhYTUyYTBjMTk1Mjg5OTQzYzZiYTY2NTg1Yjg5M2ZiIiwiYmxha2UyYiI6IjBhY2MwNWEwOGE5YjhhODNmZTVjYTk4ZmExMTg3NTYwNjk0MjY0YWUxNTI4NDliYzFkNzQzNTYzMzMyMTlhYTg3N2ZiNjc4MmRjZDZiOGIyYjM1MTkyNDQzNDE2ODJiMTQ3YmY2YTY3MDU2ZWIwOTQ4MzE1M2E4Y2ZiNTNmMTI0IiwiYmxha2UycyI6ImY5ZTRhZGRlNGEzZDRhOTZhOWUyNjVjMGVmMjdmZDNiNjA0NzI1NDllMTEyMWQzOGQwMTkxNTY5ZDY5YzdhYzAiLCJzaGEzXzIyNCI6ImM0NjQ3MGRjMjkyNGI0YjZkMTA2NDY5MDRiNWM2OGVjNTU2YmQ4MTA5NmVkMTA4YjZiMzQyZmU1Iiwic2hhM18yNTYiOiIwMDBlMThiZTI1MzYxYTk0NGExZTIwNjQ5ZmY0ZGM2OGRiZTk0OGNkNTYwY2I5MTFhODU1OTE3ODdkNWQ5YWYwIiwic2hhM18zODQiOiIzNDljZmVhMGUxZGE0NWZlMmYzNjJhMWFjZjI1ZTczOWNiNGQ0NDdiM2NiODUzZDVkYWNjMzU5ZmRhMWE1M2FhYWU5OTM2ZmFhZWM1NmFhZDkwMThhYjgxMTI4ZjI3N2YiLCJzaGEzXzUxMiI6ImMxNDgwNGY1YTNjNWE4ZGEyMTAyODk1YTFjZGU4MmIwNGYwZmY4OTczMTc0MmY2NDQyY2NmNzQ1OTQzYWQ5NGViOWZmMTNhZDg3YjRmODkxN2M5NmY5ZjMwZjkwYTFhYTI4OTI3OTkwMjg0ZDJhMzcyMjA0NjE4MTNiNDI0MzEyIiwic2hha2VfMTI4IjoiN2IxY2RkMWUyMzUzMzk0OTg5M2UyMmZkMTAwZmU0YjJhMTU1MDJmMTNjMTI0YzhiZDgxY2QwZDdlOWEzMGNmOCIsInNoYWtlXzI1NiI6ImI0NjMzZThhMjNkZDM0ODk0ZTIyNzc0ODYyNTE1MzVjYWFlNjkyMTdmOTQ0NTc3MzE1NTljODBjNWQ3M2ZkOTMxZTFjMDJlZDI0Yjc3MzE3OTJjMjVlNTZhYjg3NjI4YmJiMDgxNTU0MjU2MWY5ZGI2NWE0NDk4NDFmNGQzYTU4In0K", + "eyJibGFrZTNfbXVsdGkiOiI2Y2M0MmU4NGRiOGQyZTliYjA4YjUxNWUwYzlmYzg2NTViNDUwNGRlZDM1MzBlZjFjNTFjZWEwOWUxYThiNGYxIiwiYmxha2UzX3NpbmdsZSI6IjZjYzQyZTg0ZGI4ZDJlOWJiMDhiNTE1ZTBjOWZjODY1NWI0NTA0ZGVkMzUzMGVmMWM1MWNlYTA5ZTFhOGI0ZjEiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZDQwNjk3NTJhYjQ0NzFhZDliMDY3YmUxMmRjNTM2ZjYiLCJzaGExIjoiOGRjZmVlMjZjZjUyOTllMDBjN2QwZjJiZTc0NmVmMTlkZjliZGExNCIsInNoYTIyNCI6IjhjMzAzOTU3ZjI3NDNiMjUwNmQyYzIzY2VmNmU4MTQ5MTllZmE2MWM0MTFiMDk5ZmMzODc2MmRjIiwic2hhMjU2IjoiZDk3ZjQ2OWJjMWZkMjhjMjZkMjJhN2Y3ODczNzlhZmM4NjY3ZmZmM2FhYTQ5NTE4NmQyZTM4OTU2MTBjZDJmMyIsInNoYTM4NCI6IjY0NmY0YWM0ZDA2YWJkZmE2MDAwN2VjZWNiOWNjOTk4ZmJkOTBiYzYwMmY3NTk2M2RhZDUzMGMzNGE5ZGE1YzY4NjhlMGIwMDJkZDNlMTM4ZjhmMjA2ODcyNzFkMDVjMSIsInNoYTUxMiI6ImYzZTU4NTA0YzYyOGUwYjViNzBhOTYxYThmODA1MDA1NjQ1M2E5NDlmNTgzNDhiYTNhZTVlMjdkNDRhNGJkMjc5ZjA3MmU1OGQ5YjEyOGE1NDc1MTU2ZmM3YzcxMGJkYjI3OWQ5OGFmN2EwYTI4Y2Y1ZDY2MmQxODY4Zjg3ZjI3IiwiYmxha2UyYiI6ImFhNjgyYmJjM2U1ZGRjNDZkNWUxN2VjMzRlNmEzZGY5ZjhiNWQyNzk0YTZkNmY0M2VjODMxZjhjOTU2OGYyY2RiOGE4YjAyNTE4MDA4YmY0Y2FhYTlhY2FhYjNkNzRmZmRiNGZlNDgwOTcwODU3OGJiZjNlNzJjYTc5ZDQwYzZmIiwiYmxha2UycyI6ImQ0ZGJlZTJkMmZlNDMwOGViYTkwMTY1MDdmMzI1ZmJiODZlMWQzNDQ0MjgzNzRlMjAwNjNiNWQ1MzkzZTExNjMiLCJzaGEzXzIyNCI6ImE1ZTM5NWZlNGRlYjIyY2JhNjgwMWFiZTliZjljMjM2YmMzYjkwZDdiN2ZjMTRhZDhjZjQ0NzBlIiwic2hhM18yNTYiOiIwOWYwZGVjODk0OWEzYmQzYzU3N2RjYzUyMTMwMGRiY2UwMjVjM2VjOTJkNzQ0MDJkNTE1ZDA4NTQwODg2NGY1Iiwic2hhM18zODQiOiJmMjEyNmM5NTcxODQ3NDZmNjYyMjE4MTRkMDZkZWQ3NDBhYWU3MDA4MTc0YjI0OTEzY2YwOTQzY2IwMTA5Y2QxNWI4YmMwOGY1YjUwMWYwYzhhOTY4MzUwYzgzY2I1ZWUiLCJzaGEzXzUxMiI6ImU1ZmEwMzIwMzk2YTJjMThjN2UxZjVlZmJiODYwYTU1M2NlMTlkMDQ0MWMxNWEwZTI1M2RiNjJkM2JmNjg0ZDI1OWIxYmQ4OTJkYTcyMDVjYTYyODQ2YzU0YWI1ODYxOTBmNDUxZDlmZmNkNDA5YmU5MzlhNWM1YWIyZDdkM2ZkIiwic2hha2VfMTI4IjoiNGI2MTllM2I4N2U1YTY4OTgxMjk0YzgzMmU0NzljZGI4MWFmODdlZTE4YzM1Zjc5ZjExODY5ZWEzNWUxN2I3MiIsInNoYWtlXzI1NiI6ImYzOWVkNmMxZmQ2NzVmMDg3ODAyYTc4ZTUwYWFkN2ZiYTZiM2QxNzhlZWYzMjRkMTI3ZTZjYmEwMGRjNzkwNTkxNjQ1Y2U1Y2NmMjhjYzVkNWRkODU1OWIzMDMxYTM3ZjE5NjhmYmFhNDQzMmI2ZWU0Yzg3ZWE2YTdkMmE2NWM2In0K", + "eyJibGFrZTNfbXVsdGkiOiJhNDRiZjJkMzVkZDI3OTZlZTI1NmY0MzVkODFhNTdhOGM0MjZhMzM5ZDc3NTVkMmNiMjdmMzU4ZjM0NTM4OWM2IiwiYmxha2UzX3NpbmdsZSI6ImE0NGJmMmQzNWRkMjc5NmVlMjU2ZjQzNWQ4MWE1N2E4YzQyNmEzMzlkNzc1NWQyY2IyN2YzNThmMzQ1Mzg5YzYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiOGU5OTMzMzEyZjg4NDY4MDg0ZmRiZWNjNDYyMTMxZTgiLCJzaGExIjoiNmI0MmZjZDFmMmQyNzUwYWNkY2JkMTUzMmQ4NjQ5YTM1YWI2NDYzNCIsInNoYTIyNCI6ImQ2Y2E2OTUxNzIzZjdjZjg0NzBjZWRjMmVhNjA2ODNmMWU4NDMzM2Q2NDM2MGIzOWIyMjZlZmQzIiwic2hhMjU2IjoiMDAxNGY5Yzg0YjcwMTFhMGJkNzliNzU0NGVjNzg4NDQzNWQ4ZGY0NmRjMDBiNDk0ZmFkYzA4NWQzNDM1NjI4MyIsInNoYTM4NCI6IjMxODg2OTYxODc4NWY3MWJlM2RlZjkyZDgyNzY2NjBhZGE0MGViYTdkMDk1M2Y0YTc5ODdlMThhNzFlNjBlY2EwY2YyM2YwMjVhMmQ4ZjUyMmNkZGY3MTcxODFhMTQxNSIsInNoYTUxMiI6IjdmZGQxN2NmOWU3ZTBhZDcwMzJjMDg1MTkyYWMxZmQ0ZmFhZjZkNWNlYzAzOTE5ZDk0MmZiZTIyNWNhNmIwZTg0NmQ4ZGI0ZjllYTQ5MjJlMTdhNTg4MTY4YzExMTM1NWZiZDQ1NTlmMmU5NDcwNjAwZWE1MzBhMDdiMzY0YWQwIiwiYmxha2UyYiI6IjI0ZjExZWI5M2VlN2YxOTI5NWZiZGU5MTczMmE0NGJkZGYxOWE1ZTQ4MWNmOWFhMjQ2M2UzNDllYjg0Mzc4ZDBkODFjNzY0YWQ1NTk1YjkxZjQzYzgxODcxNTRlYWU5NTZkY2ZjZTlkMWU2MTZjNTFkZThhZDZjZTBhODcyY2Q0IiwiYmxha2UycyI6IjVkZTUwZDUwMGYwYTBmOGRlMTEwOGE2ZmFkZGM4ODNlMTA3NmQ3MThiNmQxN2E4ZDVkMjgzZDdiNGYzZDU2OGEiLCJzaGEzXzIyNCI6IjFhNTA0OGNlYWZiYjg2ZDc4ZmNiNTI0ZTViYTc4NWQ2ZmY5NzY1ZTNlMzdhZWRjZmYxZGVjNGJhIiwic2hhM18yNTYiOiI0YjA0YjE1NTRmMzRkYTlmMjBmZDczM2IzNDg4NjE0ZWNhM2IwOWU1OTJjOGJlMmM0NjA1NjYyMWU0MjJmZDllIiwic2hhM18zODQiOiI1NjMwYjM2OGQ4MGM1YmM5MTgzM2VmNWM2YWUzOTJhNDE4NTNjYmM2MWJiNTI4ZDE4YWM1OWFjZGZiZWU1YThkMWMyZDE4MTM1ZGI2ZWQ2OTJlODFkZThmYTM3MzkxN2MiLCJzaGEzXzUxMiI6IjA2ODg4MGE1MmNiNDkzODYwZDhjOTVhOTFhZGFmZTYwZGYxODc2ZDhjYjFhNmI3NTU2ZjJjM2Y1NjFmMGYwZjMyZjZhYTA1YmVmN2FhYjQ5OWEwNTM0Zjk0Njc4MDEzODlmNDc0ODFiNzcxMjdjMDFiOGFhOTY4NGJhZGUzYmY2Iiwic2hha2VfMTI4IjoiODlmYTdjNDcwNGI4NGZkMWQ1M2E0MTBlN2ZjMzU3NWRhNmUxMGU1YzkzMjM1NWYyZWEyMWM4NDVhZDBlM2UxOCIsInNoYWtlXzI1NiI6IjE4NGNlMWY2NjdmYmIyODA5NWJhZmVkZTQzNTUzZjhkYzBhNGY1MDQwYWJlMjcxMzkzMzcwNDEyZWFiZTg0ZGJhNjI0Y2ZiZWE4YzUxZDU2YzkwMTM2Mjg2ODgyZmQ0Y2E3MzA3NzZjNWUzODFlYzI5MWYxYTczOTE1MDkyMTFmIn0K", + "eyJibGFrZTNfbXVsdGkiOiJhYjA2YjNmMDliNTExOTAzMTMzMzY5NDE2MTc4ZDk2ZjlkYTc3ZGEwOTgyNDJmN2VlMTVjNTNhNTRkMDZhNWVmIiwiYmxha2UzX3NpbmdsZSI6ImFiMDZiM2YwOWI1MTE5MDMxMzMzNjk0MTYxNzhkOTZmOWRhNzdkYTA5ODI0MmY3ZWUxNWM1M2E1NGQwNmE1ZWYiLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZWY0MjcxYjU3NTQwMjU4NGQ2OTI5ZWJkMGI3Nzk5NzYiLCJzaGExIjoiMzgzNzliYWQzZjZiZjc4MmM4OTgzOGY3YWVkMzRkNDNkMzNlYWM2MSIsInNoYTIyNCI6ImQ5ZDNiMjJkYmZlY2M1NTdlODAzNjg5M2M3ZWE0N2I0NTQzYzM2NzZhMDk4NzMxMzRhNjQ0OWEwIiwic2hhMjU2IjoiMjYxZGI3NmJlMGYxMzdlZWJkYmI5OGRlYWM0ZjcyMDdiOGUxMjdiY2MyZmMwODI5OGVjZDczYjQ3MjYxNjQ1NiIsInNoYTM4NCI6IjMzMjkwYWQxYjlhMmRkYmU0ODY3MWZiMTIxNDdiZWJhNjI4MjA1MDcwY2VkNjNiZTFmNGU5YWRhMjgwYWU2ZjZjNDkzYTY2MDllMGQ2YTIzMWU2ODU5ZmIyNGZhM2FjMCIsInNoYTUxMiI6IjAzMDZhMWI1NmNiYTdjNjJiNTNmNTk4MTAwMTQ3MDQ5ODBhNGRmZTdjZjQ5NTU4ZmMyMmQxZDczZDc5NzJmZTllODk2ZWRjMmEyYTQxYWVjNjRjZjkwZGUwYjI1NGM0MDBlZTU1YzcwZjk3OGVlMzk5NmM2YzhkNTBjYTI4YTdiIiwiYmxha2UyYiI6IjY1MDZhMDg1YWQ5MGZkZjk2NGJmMGE5NTFkZmVkMTllZTc0NGVjY2EyODQzZjQzYTI5NmFjZDM0M2RiODhhMDNlNTlkNmFmMGM1YWJkNTEzMzc4MTQ5Yjg3OTExMTVmODRmMDIyZWM1M2JmNGFjNDZhZDczNWIwMmJlYTM0MDk5IiwiYmxha2UycyI6IjdlZDQ3ZWQxOTg3MTk0YWFmNGIwMjQ3MWFkNTMyMmY3NTE3ZjI0OTcwMDc2Y2NmNDkzMWI0MzYxMDU1NzBlNDAiLCJzaGEzXzIyNCI6Ijk2MGM4MDExOTlhMGUzYWExNjdiNmU2MWVkMzE2ZDUzMDM2Yjk4M2UyOThkNWI5MjZmMDc3NDlhIiwic2hhM18yNTYiOiIzYzdmYWE1ZDE3Zjk2MGYxOTI2ZjNlNGIyZjc1ZjdiOWIyZDQ4NGFhNmEwM2ViOWNlMTI4NmM2OTE2YWEyM2RlIiwic2hhM18zODQiOiI5Y2Y0NDA1NWFjYzFlYjZmMDY1YjRjODcxYTYzNTM1MGE1ZjY0ODQwM2YwYTU0MWEzYzZhNjI3N2ViZjZmYTNjYmM1YmJiNjQwMDE4OGFlMWIxMTI2OGZmMDJiMzYzZDUiLCJzaGEzXzUxMiI6ImEyZDk3ZDRlYjYxM2UwZDViYTc2OTk2MzE2MzcxOGEwNDIxZDkxNTNiNjllYjM5MDRmZjI4ODRhZDdjNGJiYmIwNGY2Nzc1OTA1YmQxNGI2NTJmZTQ1Njg0YmI5MTQ3ZjBkYWViZjAxZjIzY2MzZDhkMjIzMTE0MGUzNjI4NTE5Iiwic2hha2VfMTI4IjoiNjkwMWMwYjg1MTg5ZTkyNTJiODI3MTc5NjE2MjRlMTM0MDQ1ZjlkMmI5MzM0MzVkM2Y0OThiZWIyN2Q3N2JiNSIsInNoYWtlXzI1NiI6ImIwMjA4ZTFkNDVjZWI0ODdiZDUwNzk3MWJiNWI3MjdjN2UyYmE3ZDliNWM2ZTEyYWE5YTNhOTY5YzcyNDRjODIwZDcyNDY1ODhlZWU3Yjk4ZWM1NzhjZWIxNjc3OTkxODljMWRkMmZkMmZmYWM4MWExZDAzZDFiNjMxOGRkMjBiIn0K", ] From fbc5a8ec6554ff9b5c375122e1e99777bc4d3f47 Mon Sep 17 00:00:00 2001 From: Brandon Rising Date: Tue, 18 Jun 2024 09:38:22 -0400 Subject: [PATCH 16/17] Ignore validation on improperly formatted hashes (pytest) --- invokeai/backend/model_hash/hash_validator.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/invokeai/backend/model_hash/hash_validator.py b/invokeai/backend/model_hash/hash_validator.py index f0580e00dd..2064b74a92 100644 --- a/invokeai/backend/model_hash/hash_validator.py +++ b/invokeai/backend/model_hash/hash_validator.py @@ -3,6 +3,8 @@ from base64 import b64decode def validate_hash(hash: str): + if not ":" in hash: + return for enc_hash in hashes: alg, hash_ = hash.split(":") if alg == "blake3": From 63a7e19dbfd2d74a5939e7e9b077cf3051d63cec Mon Sep 17 00:00:00 2001 From: Brandon Rising Date: Tue, 18 Jun 2024 09:40:01 -0400 Subject: [PATCH 17/17] Run ruff --- invokeai/backend/model_hash/hash_validator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/invokeai/backend/model_hash/hash_validator.py b/invokeai/backend/model_hash/hash_validator.py index 2064b74a92..8c38788514 100644 --- a/invokeai/backend/model_hash/hash_validator.py +++ b/invokeai/backend/model_hash/hash_validator.py @@ -3,7 +3,7 @@ from base64 import b64decode def validate_hash(hash: str): - if not ":" in hash: + if ":" not in hash: return for enc_hash in hashes: alg, hash_ = hash.split(":")